广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > 如何修改ecshop的缩略图输出大小(压缩比)以及水印的质量

二次开发Ecshop二次开发

二次开发Ecshop二次开发

如何修改ecshop的缩略图输出大小(压缩比)以及水印的质量

如今使用ecshop系统的人越来越多了,本人也在其行列之中,但是我在整这个系统时遇到好多问题,现整理其中两个如下(所有问题中有我自己总结的,也有在网上搜索的),希望对大家能有所帮助吧~

ecshop的缩略图压缩比很少,我在ecshop默认的压缩参数下生成的170px x 230px的图片才7KB,小虽然可以快点,但整个图片基本都是模糊的,不只是看不清,也让整个网站的品质低了很多,一个明明很时尚很有口味的商品,也失色很多,,

1,修改ecshop的缩略图输出大小(压缩比)

默认生成jpg缩略图或商品图的质量是80(有说65的),有些时候不够满意,现提供调整生成jpg图片的质量的方法
找到includes/cls_image.php,在大约250行左右


if (function_exists('imagejpeg'))
{
$filename .= '.jpg';
imagejpeg($img_thumb, $dir . $filename);
}

改为


if (function_exists('imagejpeg'))
{
$filename .= '.jpg';
imagejpeg($img_thumb, $dir . $filename, 90);
}

就是上面标明红色的$filename后面加上一个90 当然在90的前面还要加上一个英文的逗号,英文的,把输出法换成英语的再打,这样应该足够清晰了,这里允许0-100的范围,不写默认是80(也有说是65)的质量。

2,修改水印的质量和透明度

同样是 includes/cls_image.php,在406行开始附近,第一个是GIF 的,

case 'image/gif':
case 1:
imagegif($source_handle, $target);
break;

case 'image/pjpeg':
case 'image/jpeg':
case 2:
imagejpeg($source_handle, $target);
break;

case 'image/x-png':
case 'image/png':
case 3:
imagepng($source_handle, $target);
break;

第一个是GIF 的,通常改JPG 就可以了,在$target后面加上,100

case 2:
imagejpeg($source_handle, $target,100);
break;

这样应该就差不多了,水印的我没有试过,大家在试之前先备份好cls_images.php文件,

 

3,ecshop缩略图在修改之后还是没有效果的问题

缩略图片我是用过的,质量的确好很多,我在网上看到有些朋友说没有效果,我想可能是他们的gd库是1。0的吧,

我注意的看过一下这个图片处理的php文件,

if (function_exists('imagecreatetruecolor'))
{
$version = 2;
}
elseif (function_exists('imagecreate'))
{
$version = 1;
}

这个循环语句的意思是:如果gd版本为1的话,就使用imagecreatruecolor 函数处理缩略

gd版本为1的话,就用imagecreate

下面是二个 函数的说明,懂php的可以去研究一下,不会的就不要看了,

http://www.phpchina.com/manual/php/function.imagecreatetruecolor.html

http://www.phpchina.com/manual/php/function.imagecreate.html

应该是这个问题,在修改了代码还是看不到效果的朋友可以自己在后台看一下,(这个是2。0)(图略)

如果证实是因为1.0的原因话,那就没有办法了,因为imagecreatruecolor函数必须要在GD 2.0.1 或更高版本才能执行,叫空间商升级gd库