时间:2024-03-15
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>
Copyright © 2019-2024 php.pink