兼容性比較好的PHP生成縮略圖的代碼
更新時(shí)間:2011年01月12日 23:22:19 作者:
寫通用性程序考慮兼容性是很頭痛的事情,關(guān)于用PHP生成縮略圖的代碼很多,不過能完全兼容gd1.6和gd2.x,并能保證縮圖清晰性的代碼幾乎沒有,我把我以前的代碼改了一下,就能實(shí)現(xiàn)了。
復(fù)制代碼 代碼如下:
function ImageResize($srcFile,$toW,$toH,$toFile="")
{
if($toFile==""){ $toFile = $srcFile; }
$info = "";
$data = GetImageSize($srcFile,$info);
switch ($data[2])
{
case 1:
if(!function_exists("imagecreatefromgif")){
echo "你的GD庫(kù)不能使用GIF格式的圖片,請(qǐng)使用Jpeg或PNG格式!<a href='javascript:go(-1);'>返回</a>";
exit();
}
$im = ImageCreateFromGIF($srcFile);
break;
case 2:
if(!function_exists("imagecreatefromjpeg")){
echo "你的GD庫(kù)不能使用jpeg格式的圖片,請(qǐng)使用其它格式的圖片!<a href='javascript:go(-1);'>返回</a>";
exit();
}
$im = ImageCreateFromJpeg($srcFile);
break;
case 3:
$im = ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$toWH=$toW/$toH;
$srcWH=$srcW/$srcH;
if($toWH<=$srcWH){
$ftoW=$toW;
$ftoH=$ftoW*($srcH/$srcW);
}
else{
$ftoH=$toH;
$ftoW=$ftoH*($srcW/$srcH);
}
if($srcW>$toW||$srcH>$toH)
{
if(function_exists("imagecreatetruecolor")){
@$ni = ImageCreateTrueColor($ftoW,$ftoH);
if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
else{
$ni=ImageCreate($ftoW,$ftoH);
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
}else{
$ni=ImageCreate($ftoW,$ftoH);
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile);
else ImagePNG($ni,$toFile);
ImageDestroy($ni);
}
ImageDestroy($im);
}
您可能感興趣的文章:
- PHP使用imagick讀取PDF生成png縮略圖的兩種方法
- php 根據(jù)url自動(dòng)生成縮略圖并處理高并發(fā)問題
- php生成縮略圖示例代碼分享(使用gd庫(kù)實(shí)現(xiàn))
- php利用GD庫(kù)生成縮略圖示例
- 使用gd庫(kù)實(shí)現(xiàn)php服務(wù)端圖片裁剪和生成縮略圖功能分享
- php生成縮略圖填充白邊(等比縮略圖方案)
- PHP imagegrabscreen和imagegrabwindow(截取網(wǎng)站縮略圖)的實(shí)例代碼
- 基于PHP服務(wù)端圖片生成縮略圖的方法詳解
- php圖片的裁剪與縮放生成符合需求的縮略圖
- PHPThumb PHP 圖片縮略圖庫(kù)
- php 縮略圖實(shí)現(xiàn)函數(shù)代碼
- PHP縮略圖等比例無(wú)損壓縮,可填充空白區(qū)域補(bǔ)充色
- PHP用GD庫(kù)生成高質(zhì)量的縮略圖片
- 兼容性最強(qiáng)的PHP生成縮略圖的函數(shù)代碼(修改版)
- 完美實(shí)現(xiàn)GIF動(dòng)畫縮略圖的php代碼
- php下嘗試使用GraphicsMagick的縮略圖功能
- php圖片處理:加水印、縮略圖的實(shí)現(xiàn)(自定義函數(shù):watermark、thumbnail)
- php實(shí)現(xiàn)上傳圖片生成縮略圖示例
相關(guān)文章
php utf-8轉(zhuǎn)unicode的函數(shù)
php下我們想把uft-8,轉(zhuǎn)成unicode可以用下面的函數(shù)來(lái)實(shí)現(xiàn)2008-06-06
PHP使用Redis實(shí)現(xiàn)防止大并發(fā)下二次寫入的方法
這篇文章主要介紹了PHP使用Redis實(shí)現(xiàn)防止大并發(fā)下二次寫入的方法,結(jié)合實(shí)例形式分析了php使用鎖機(jī)制實(shí)現(xiàn)并發(fā)讀寫redis情況下的讀寫錯(cuò)誤,需要的朋友可以參考下2017-10-10
PHP實(shí)現(xiàn)全角字符轉(zhuǎn)為半角方法匯總
這篇文章主要給大家匯總介紹了PHP實(shí)現(xiàn)全角字符轉(zhuǎn)為半角方法,從簡(jiǎn)單到復(fù)雜,小伙伴們根據(jù)自己的需求來(lái)自由選擇吧。2015-07-07
PHP數(shù)組編碼gbk與utf8互相轉(zhuǎn)換的兩種方法
這篇文章給大家分享了兩種轉(zhuǎn)換的方法,都可以實(shí)現(xiàn)PHP數(shù)組的編碼進(jìn)行相互轉(zhuǎn)換。大家可以參考自己的實(shí)際情況進(jìn)行選擇哪一種方法,下面來(lái)一起看看吧。2016-09-09
利用php+mcDropdown實(shí)現(xiàn)文件路徑可在下拉框選擇
以下是對(duì)php+mcDropdown實(shí)現(xiàn)文件路徑可在下拉框進(jìn)行選擇的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來(lái)參考下2013-08-08
PHP幾個(gè)數(shù)學(xué)計(jì)算的內(nèi)部函數(shù)學(xué)習(xí)整理
下面主要講述 round, floor, ceil, pow, rand,max, min, decbin, bindec, dechex, hexdec, decoct, octdec 函數(shù)。2011-08-08

