您的位置:首页 > 运维架构

opencart入门之图片处理以及添加水印功能

2014-11-07 00:00 741 查看
为了能够让同一个图片以不同的大小在不同的页面展示,而又无需用户多次上传图片,opencart封装了一个图片处理函数以及一个类库。

图片处理方法:




我们使用的时候把相应的图片路径、所要剪切的宽高传入resize方法即可。那么,我们如何给图片添加水印呢?

opencart自带的image类库中有个watermark($file, $position = ‘bottomright’)方法,我们只需在剪切图片时调用此方法就可以了。下面附调用方法和watermark()方法

//调用方法
    $image = new Image(DIR_IMAGE . $old_image);
    $image->resize($width, $height, $type);

    $image->watermark(DIR_IMAGE . 'data/watermark.png');//添加水印,一定要在resize()之后调用

    $image->save(DIR_IMAGE . $new_image);

//添加水印
public function watermark($file, $position = 'bottomright') {
    $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;
    }

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

    imagedestroy($watermark);
}

至于如何在后台控制水印图片、以及水印开关功能,大家可自行扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐