WordPress添加水印插件Watermark Reloaded改进

作者: 站长 上传时间: 浏览: N/A 下载: N/A 格式: N/A 评分: N/A

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

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

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

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

$_options属性变更如下:

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方法变更如下:

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这个表格行的后面添加:

<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>