婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網(wǎng)站建設(shè) > 建站知識 > DEDECMS5.7實(shí)現(xiàn)縮略圖不拉伸變形的方法

DEDECMS5.7實(shí)現(xiàn)縮略圖不拉伸變形的方法

POST TIME:2017-12-15 22:33

dedecms程序目前幾個(gè)最新版本的縮略圖生成方式都是采用縮小或拉伸的方式進(jìn)行完整顯示,如果使用的圖片和縮略圖所顯示的比例不一致的話,會(huì)使得縮略圖拉伸變形。如果不改變織夢目前的縮略圖顯示方式的話,又想縮略圖不拉伸變形顯示,就得制作一個(gè)和顯示縮略圖位置大小一致或者圖片比例一致且大于縮略圖的分辨率就會(huì)不拉伸變形了。

我們可以通過下面方法修改實(shí)現(xiàn),對圖片進(jìn)行按寬或高進(jìn)行放縮,超過縮略圖大小的部分再進(jìn)行裁剪,這樣生成的縮略圖的顯示效果要比原來的要好得多了。同時(shí)也可以采取之際制作好分辨率一致的縮略圖進(jìn)行顯示。

于是重新修改了一下DedeCmsv5.6縮略圖生成方法。

默認(rèn)dedecms5.6默認(rèn)生成的縮略圖,縮略圖大小設(shè)置為:100*100(直接把圖片縮小了)

看起來很不美觀,影響了圖片的觀賞性

DEDECMS v5.6縮略圖裁剪優(yōu)化方法

修改如下:
打開/includes/image.func.php文件,
//縮圖片自動(dòng)生成函數(shù),來源支持bmp、gif、jpg、png
//但生成的小圖只用jpg或png格式
找到代碼第44行function ImageResize

//獲得GD的版本之間的代碼,用如下的代碼覆蓋(大家請注意備份)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
functionImageResize($srcFile,$toW,$toH,$toFile="")
{
global$cfg_photo_type;
if($toFile=="")
{
$toFile=$srcFile;
}
$info="";
$srcInfo=GetImageSize($srcFile,$info);
switch($srcInfo[2])
{
case1:
if(!$cfg_photo_type['gif'])
{
returnfalse;
}
$im=imagecreatefromgif($srcFile);
break;
case2:
if(!$cfg_photo_type['jpeg'])
{
returnfalse;
}
$im=imagecreatefromjpeg($srcFile);
break;
case3:
if(!$cfg_photo_type['png'])
{
returnfalse;
}
$im=imagecreatefrompng($srcFile);
break;
case6:
if(!$cfg_photo_type['bmp'])
{
returnfalse;
}
$im=imagecreatefromwbmp($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
if($srcW<=$toW&&$srcH<=$toH)
{
returntrue;
}
//縮略生成并裁剪
$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);
}
//裁剪圖片成標(biāo)準(zhǔn)縮略圖
$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])
{
case1:
imagegif($new_imgx,$toFile);
break;
case2:
imagejpeg($new_imgx,$toFile,85);
break;
case3:
imagepng($new_imgx,$toFile);
break;
case6:
imagebmp($new_imgx,$toFile);
break;
default:
returnfalse;
}
imagedestroy($new_imgx);
imagedestroy($ni);
}
imagedestroy($im);
returntrue;
}

 




收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 鹿邑县| 峡江县| 汶上县| 连云港市| 政和县| 和林格尔县| 南投市| 滨州市| 南昌县| 蒙城县| 盘锦市| 阿图什市| 邹城市| 会昌县| 石柱| 赤城县| 高要市| 海淀区| 山东省| 东乡县| 南汇区| 浦县| 澄迈县| 焉耆| 安达市| 桑日县| 伽师县| 昭觉县| 常宁市| 昆山市| 宝兴县| 颍上县| 旬阳县| 双江| 塔河县| 靖宇县| 沙坪坝区| 临潭县| 奉贤区| 徐汇区| 莎车县|