WordPress添加水印插件Watermark Reloaded改进

WordPress插件Watermark Reloaded可以为上传的图片添加文字水印,但不支持中文,对于只需要在图片上添加网址水印的简单需求来说非常适合。

Watermark Reloaded插件支持针对不同裁剪版本的图片添加水印,例如可以限制只为large版本的图片添加水印。可以设置水印的坐标,也可以设置文字颜色。

在图片比较小的情况下,或许我们并不希望再添加水印遮挡图片内容,因此我简单修改了一下Watermark Reloaded插件,实现设置图片尺寸功能,只有在宽和高都大于设置参数的情况下,才为该图片添加水印。

修改watermark-reloaded.php文件中以下代码:

$_options属性变更如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
protected $_options = array(
    'watermark_installed'  => 0,
    'watermark_donated' => 0,
    'watermark_hide_nag'  => 0,
    'watermark_hide_pro_nag' => 0,
    'watermark_on' => array(),
    'watermark_position' => 'bottom_right',
    'watermark_offset' => array(
        'x' => 5,
        'y' => 5
    ),
    'watermark_size' => array(
        'w' => 200,
        'h' => 100
    ),
    'watermark_text' => array(
        'value' => null,
        'font' => 'Arial.ttf',
        'size' => 20,
        'color' => '000000'
    )
);

doWatermark方法变更如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function doWatermark($filepath) {
    // get image mime type
    $mime_type = wp_check_filetype($filepath);
    $mime_type = $mime_type['type'];
    // get watermark settings
    $options = $this->get_options();
    // get image resource
    $image = $this->getImageResource($filepath, $mime_type);
    // add text watermark to image
    $size = $this->getImageSize($image);
    if($size['x'] > $options['watermark_size']['w'] && $size['y'] > $options['watermark_size']['h']) {
        $this->imageAddText($image, $options);
        // save watermarked image
        return $this->saveImageFile($image, $mime_type, $filepath);
    }
}

在插件设置表单Watermark offset这个表格行的后面添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
<tr valign="top">
    <th scope="row">图片尺寸</th>
    <td>
        <fieldset>
        <legend class="screen-reader-text"><span>Watermark size</span></legend>
            <?php $watermark_size = $this->get_option('watermark_size'); ?>
            <?php foreach(array('w', 'h') as $size) : ?>
            <?php echo $size; ?>: <input class="wr_right" name="watermark_size[<?php echo $size; ?>]" type="text" value="<?php echo $watermark_size[$size]; ?>" size="5" />px<br />
            <?php endforeach; ?>     
            <span class="description">大于该尺寸的图片才添加水印.</span>
        </fieldset>
    </td>
</tr>
原文链接:https://xiaohost.com/2309.html,转载请注明出处。
0