使用ThinkPHP生成縮略圖及顯示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
首先了解父類(lèi)Image.class.php(ThinkPHP/Library/Think/Image.class.php)中的一些函數(shù)
1:open() 打開(kāi)被處理的圖片
2:thumb() 生成縮略圖 默認(rèn)1等比縮放 (其中2,3,4,5,6代表的含義參見(jiàn)父類(lèi)文件Image.class.php)
3:save() 縮略圖到服務(wù)器
生成縮略圖步驟分以下四步
* 1.實(shí)例化
* 2.打開(kāi)圖片open()
* 3.生成縮略圖thumb() 默認(rèn)等比縮放
* 4.保存save()
PHP等比例生成縮略圖
/**
* 生成縮略圖
* $imgSrc 圖片源路徑
* $resize_width 圖片寬度
* $resize_height 圖片高度
* $dstimg 縮略圖路徑
* $isCut 是否剪切圖片
*/
public function reSizeImg($imgSrc, $resize_width, $resize_height, $dstimg, $isCut = false) {
//圖片的類(lèi)型
$type = substr(strrchr($imgSrc, "."), 1);
//初始化圖象
if ($type == "jpg" || $type == "jpeg") {
$im = imagecreatefromjpeg($imgSrc);
}
if ($type == "gif") {
$im = imagecreatefromgif($imgSrc);
}
if ($type == "png") {
$im = imagecreatefrompng($imgSrc);
}
$width = imagesx($im);
$height = imagesy($im);
//生成圖象
//改變后的圖象的比例
$resize_ratio = ($resize_width) / ($resize_height);
//實(shí)際圖象的比例
$ratio = ($width) / ($height);
if (($isCut) == 1) {
if ($ratio >= $resize_ratio) {
//高度優(yōu)先
$newimg = imagecreatetruecolor($resize_width, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height);
ImageJpeg($newimg, $dstimg);
}
if ($ratio < $resize_ratio) {
//寬度優(yōu)先
$newimg = imagecreatetruecolor($resize_width, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));
ImageJpeg($newimg, $dstimg);
}
} else {
if ($ratio >= $resize_ratio) {
$newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);
ImageJpeg($newimg, $dstimg);
}
if ($ratio < $resize_ratio) {
$newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);
ImageJpeg($newimg, $dstimg);
}
}
ImageDestroy($im);
}
遠(yuǎn)近互聯(lián)前端小秦整理發(fā)布,希望能對(duì)學(xué)習(xí)技術(shù)的你有所幫助
遠(yuǎn)近互聯(lián)專(zhuān)業(yè)提供網(wǎng)站建設(shè)、APP開(kāi)發(fā)、網(wǎng)站優(yōu)化、外貿(mào)網(wǎng)站SEO、微信運(yùn)營(yíng)的品牌整合營(yíng)銷(xiāo)服務(wù)讓客戶(hù)通過(guò)網(wǎng)絡(luò)品牌建立與網(wǎng)絡(luò)傳播提高業(yè)績(jī)。






