ECSHOP关于PNG水印透明(附解决方法)
最新版的2.5.1的水印依然不完美,PNG水印不能实现背景透明。还有就是若是图片很小的情况下强制加水印则很难看。参照Discuz的方法,发现改一个文件即可实现,即修改includes/cls_image.php文件。
修改1:
在原代码360行处添加以下代码:
[Copy to clipboard] [ - ]CODE:
// 若图片太小则不添加水印
if ((($source_info[0]/2 - $watermark_info[0]) < 0) || (($source_info[1]/2 - $watermark_info[1]) < 0)) {
return str_replace(ROOT_PATH, '', str_replace('\\', '/', realpath($filename)));
}
修改2:
将原代码:
[Copy to clipboard] [ - ]CODE:
imagecopymerge($source_handle, $watermark_handle, $x, $y, 0, 0,
$watermark_info[0], $watermark_info[1], $watermark_alpha);
修改为:
[Copy to clipboard] [ - ]CODE:
if (stripos($watermark_info['mime'], 'png') !== false) {
imageAlphaBlending($watermark_handle, true);
imagecopy($source_handle, $watermark_handle, $x, $y, 0, 0,
$watermark_info[0], $watermark_info[1]);
} else {
imagecopymerge($source_handle, $watermark_handle, $x, $y, 0, 0,
$watermark_info[0], $watermark_info[1], $watermark_alpha);
}
欢迎大家测试,另若大家测试都没问题,则希望官方在下一版本中改进此功能。

