php生成圖片縮略圖功能示例
本文實例講述了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); } ?>
PS:這里再為大家推薦幾款比較實用的圖片處理工具供大家參考使用:
在線圖片轉換BASE64工具:
http://tools.jb51.net/transcoding/img2base64
ICO圖標在線生成工具:
http://tools.jb51.net/aideddesign/ico_img
在線Email郵箱圖標制作工具:
http://tools.jb51.net/email/emaillogo
在線圖片格式轉換(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數(shù)據庫操作入門教程》及《php常見數(shù)據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP基于PDO實現(xiàn)的SQLite操作類【包含增刪改查及事務等操作】
這篇文章主要介紹了PHP基于PDO實現(xiàn)的SQLite操作類,包含增刪改查及事務等操作實現(xiàn)技巧與使用方法,需要的朋友可以參考下2017-06-06php 數(shù)組操作(增加,刪除,查詢,排序)等函數(shù)說明
php 數(shù)組增加,刪除,查詢,排序詳細說明,需要的朋友可以參考下。2010-05-05php通過curl添加cookie偽造登陸抓取數(shù)據的方法
這篇文章主要介紹了php通過curl添加cookie偽造登陸抓取數(shù)據的方法,涉及PHP基于curl操作cookie及頁面抓取的相關技巧,需要的朋友可以參考下2016-04-04