- 相關推薦
php生成圖片縮略圖功能示例
php生成圖片縮略圖功能,結合完整實例形式分析了php縮略圖生成的詳細步驟與相關實現(xiàn)技巧,需要的朋友可以參考下。
本文實例講述了php生成圖片縮略圖功能。分享給大家供大家參考,具體如下:
完整代碼如下(為方便閱讀,代碼使用http://tools.jb51.net/code/phpformat進行了格式化處理):
<?php
/*
* Created on 2011-3-18
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
/*構造函數(shù)-生成縮略圖+水印,參數(shù)說明:
$srcFile-圖片文件名,
$dstFile-另存文件名,
$markwords-水印文字,
$markimage-水印圖片,
$dstW-圖片保存寬度,
$dstH-圖片保存高度,
$rate-圖片保存品質*/
makethumb("1.jpg", "aa/b.jpg", "50", "50");
function makethumb($srcFile, $dstFile, $dstW, $dstH, $rate = 100, $markwords = null, $markimage = null) {
$data = GetImageSize($srcFile);
switch ($data[2]) {
case 1:
$im = @ImageCreateFromGIF($srcFile);
break;
case 2:
$im = @ImageCreateFromJPEG($srcFile);
break;
case 3:
$im = @ImageCreateFromPNG($srcFile);
break;
}
if (!$im) return False;
$srcW = ImageSX($im);
$srcH = ImageSY($im);
$dstX = 0;
$dstY = 0;
if ($srcW * $dstH > $srcH * $dstW) {
$fdstH = round($srcH * $dstW / $srcW);
$dstY = floor(($dstH - $fdstH) / 2);
$fdstW = $dstW;
} else {
$fdstW = round($srcW * $dstH / $srcH);
$dstX = floor(($dstW - $fdstW) / 2);
$fdstH = $dstH;
}
$ni = ImageCreateTrueColor($dstW, $dstH);
$dstX = ($dstX < 0) ? 0 : $dstX;
$dstY = ($dstX < 0) ? 0 : $dstY;
$dstX = ($dstX > ($dstW / 2)) ? floor($dstW / 2) : $dstX;
$dstY = ($dstY > ($dstH / 2)) ? floor($dstH / s) : $dstY;
$white = ImageColorAllocate($ni, 255, 255, 255);
$black = ImageColorAllocate($ni, 0, 0, 0);
imagefilledrectangle($ni, 0, 0, $dstW, $dstH, $white); // 填充背景色
ImageCopyResized($ni, $im, $dstX, $dstY, 0, 0, $fdstW, $fdstH, $srcW, $srcH);
if ($markwords != null) {
$markwords = iconv("gb2312", "UTF-8", $markwords);
//轉換文字編碼
ImageTTFText($ni, 20, 30, 450, 560, $black, "simhei.ttf", $markwords); //寫入文字水印
//參數(shù)依次為,文字大小|偏轉度|橫坐標|縱坐標|文字顏色|文字類型|文字內容
} elseif ($markimage != null) {
$wimage_data = GetImageSize($markimage);
switch ($wimage_data[2]) {
case 1:
$wimage = @ImageCreateFromGIF($markimage);
break;
case 2:
$wimage = @ImageCreateFromJPEG($markimage);
break;
case 3:
$wimage = @ImageCreateFromPNG($markimage);
break;
}
imagecopy($ni, $wimage, 500, 560, 0, 0, 88, 31); //寫入圖片水印,水印圖片大小默認為88*31
imagedestroy($wimage);
}
ImageJpeg($ni, $dstFile, $rate);
ImageJpeg($ni, $srcFile, $rate);
imagedestroy($im);
imagedestroy($ni);
}
?>
【php生成圖片縮略圖功能示例】相關文章:
PHP生成圖片縮略圖類示例代碼07-31
php上傳圖片生成縮略圖07-31
php生成圖片縮略圖的方法08-23
PHP生成縮略圖的方法10-13
php生成高清縮略圖實例08-12
PHP生成縮略圖的類的方法07-11
PHP用GD庫生成高質量的縮略圖片09-17
php生成縮略圖的兩種方法05-24
php生成縮略圖的兩種方法(代碼)08-08