opencart2 添加水印图片

本文介绍如何为Opencart2电商平台的产品图片添加水印,包括上传水印图片、修改图片处理函数及调整图片生成逻辑等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载了最新的opencart2研究,下面是添加水印的方法,一共3个步骤,都可以对比本身的代码,看看改动:

1.  上传一张水印图到image目录下,名字是 watermark.png,另外水印图一般都要背景透明,所以就用png

2.  system\library\image.php修改部分代码,找到watermark函数(感谢系统自带了这个函数^_^)

	public function watermark($file, $position = 'center') {
	        $watermark = imagecreatefrompng($file);

		$watermark_width = imagesx($watermark);
		$watermark_height = imagesy($watermark);

		switch($position) {
			case 'topleft':
				$watermark_pos_x = 0;
				$watermark_pos_y = 0;
				break;
			case 'topright':
				$watermark_pos_x = $this->info['width'] - $watermark_width;
				$watermark_pos_y = 0;
				break;
			case 'bottomleft':
				$watermark_pos_x = 0;
				$watermark_pos_y = $this->info['height'] - $watermark_height;
				break;
			case 'bottomright':
				$watermark_pos_x = $this->info['width'] - $watermark_width;
				$watermark_pos_y = $this->info['height'] - $watermark_height;
				break;
            case 'center':
                $watermark_pos_x = ($this->info['width']- $watermark_width)/2;
                $watermark_pos_y = ($this->info['height']- $watermark_height)/2;
                break;
		}

		imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, $watermark_width, $watermark_height);

		imagedestroy($watermark);
	}


你自己可以对照这个文件,就能看到有哪些改动,下面是几点修改的说明:

 a. 去掉了创建水印图的判断,因为我们已经定死了是png图片

b.  函数默认参数改为  center,90%以上的网站都是在原图中间加 水印图片

c.  case 'center'的实现

d. 函数末尾imagecopy的最后2个参数改为 水印图片的宽和高


3.  catalog/model/tool/image.php 第30行左右,修改如下:

list($width_orig, $height_orig) = getimagesize(DIR_IMAGE . $old_image);

			if ($width_orig != $width || $height_orig != $height) {
				$image = new Image(DIR_IMAGE . $old_image);
		//添加这个这里可以自行改变,因为产品小图是不用加水印的,我设置的是大于500就添加水印
                if ($width > 500 || $height > 500) {
                    $image->watermark(DIR_IMAGE . 'watermark.png', 'center');
                }

				$image->resize($width, $height);
				$image->save(DIR_IMAGE . $new_image);
			} else {
				copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);
			}

说明: opencart是 在图片调用的地方才生成 相应的缩略图


备注:如果该功能OK,为了opencart2的规范,请复制该文件到  /system/modification/system/library/image.php,这样以后版本更新才可以直接覆盖system文件夹,不受影响。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值