Dedecms模板中縮略圖不拉伸變形的處理方法,織夢技
導讀:織夢技術織夢技術前面介紹過一些關于dedecms中縮略圖出現在問題的處理方法如:Dedecms列表頁中有縮略圖則顯示縮略圖沒有就不顯示 ,img圖片元素下多余空白解決方案 ;這織夢后臺模板dede手機模板。
前面介紹過一些關于dedecms中縮略圖出現在問題的處理方法如:Dedecms列表頁中有縮略圖則顯示縮略圖沒有就不顯示 ,img圖片元素下多余空白解決方案 ;這篇文章中我們將主要介紹如何處理 dedecms模板中縮略圖變弄的問題
dedecms的目前幾個最新版本的縮略圖生成方式都是采用縮小或拉伸的方式進行完整顯示,如果使用的圖片和縮略圖所顯示的比例不一致的話,會使得縮略圖拉伸變形。
如果不改變織夢目前的縮略圖顯示方式的話,又想縮略圖不拉伸變形顯示,就得制作一個和顯示縮略圖位置大小一致或者圖片比例一致且大于縮略圖的分辨率就織夢的模板會不拉伸變形了。
我們可以通過下面方法修改實現,對圖片進行按寬或高進行放縮,超過縮略圖大小的部分再進行裁剪,這樣生成的縮略圖的顯示效果要比原來的要好得多了。同時也可以采取之際制作好分辨率一致的縮略圖進行顯示。
于是重新修改了一下DedeCms v5.6縮略圖生成方法。
默認dedecms5.6默認生成的縮略圖,縮略圖大小設置為:100*100(直接把圖片縮小了)
看起來很不美觀,影響了圖片的觀賞性
DEDECMS v5.6縮略圖裁剪優化方法
修改如下: 打開/includes/image.func.php文件, //縮圖片自動生成函數,來源支持bmp、gif、jpg、png //但生成的小圖只用jpg或png格式 找到代碼第44行function ImageResize 至 //獲得GD的版本之間的代碼,用如下的代碼覆蓋(大家請注意備份)。
function ImageResize($srcFile,$toW,$toH,$toFile="") { global $cfg_photo_type; if($toFile=="") { $toFile = $srcFile; } $info = ""; $srcInfodede手機模板 = GetImageSize($srcFile,$info); switch ($srcInfo[2]) { case 1: if(!$cfg_photo_type['gif']) { return false; } $im = imagecreatefromgif($srcFile); break; case 2: if(!$cfg_photo_type['jpeg']) { return false; } $im = imagecreatefromjpeg($srcFile); break; case 3: if(!$cfg_photo_type['png']) { return false; } $im = imagecreatefrompng($srcFile); break; case 6: if(!$cfg_photo_type['bmp']) { return false; } $im = imagecreatefromwbmp($srcFile); break; } $srcW=ImageSX($im); $srcH=ImageSY($im); if($srcW<=$toW && $srcH<=$toH ) { return true; } //縮略生成并裁剪 $newW = $toH * $srcW / $srcH; $newH = $toW * $srcH / $srcW; if($newH >= $toH) { $ftoW = $toW; $ftoH = $newH; } else { $ftoW = $newW; $ftoH = $toH; } 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); } //裁剪圖片成標準縮略圖 $new_imgx = imagecreatetruecolor($toW,$toH); if($newH >= $toH) { imagecopyresampled($new_imgx,$ni,0,0,0,($newH – $toH)/2,$toW,$toH,$toW,$toH); } else { imagecopyresampled($new_imgx,$ni,0,0,($newW – $toW)/2,0,$toW,$toH,$toW,$toH); } switch ($srcInfo[2]) { case 1: 免費織夢模板 imagegif($new_imgx,$toFile); break; case 2: imagejpeg($new_imgx,$toFile,85); break; case 3: imagepng($new_imgx,$toFile); break; case 6: imagebmp($new_imgx,$toFile); break; default: return false; } imagedestroy($new_imgx); imagedestroy($ni); } imagedestroy($im); return true; }
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-22 ,文章Dedecms模板中縮略圖不拉伸變形的處理方法,織夢技主要講述縮略圖,模板,織夢網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_33938.html