·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> WordPress 图片水印插件:Watermark Reloaded

WordPress 图片水印插件:Watermark Reloaded

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

以前用 WordPress 帮朋友搭建了一个展示公司产品的网站, 发现产品图片时常被同行盗用。 于是捣鼓着搞个为图片加水印的功能, 找来一款 WordPress 图片水印插件: Watermark Reloaded, 并且对插件做了一些修改, 让它支持半透明水印。

WordPress 图片半透明水印效果

插件功能

看看WordPress 后台截了个图, 功能一目了然。

1.支持对指定类型的图片进行加水印操作

2.支持水印定位和位置微调

3.支持自定义水印文本, 修改文字类型, 文字尺寸和文字颜色

WordPress 图片水印插件 - Watermark Reloaded

设置完成后,当用户使用 WordPress 的添加附件功能上传图片,即在指定格式的图片上进行水印处理。也就是说, 这个插件在上传图片后, 在传送到指定目录之前为图片加上水印。

半透明水印

在多款WordPress 图片水印插件中,Watermark Reloaded 并不算功能强大,但是它使用起来十分便利。除了半透明水印效果, 它可以满足我其他最想要的功能,所以我决定改造一下,让它水印支持透明度调整。很简单的,跟我来试一下。

打开插件的主文件 watermark-reloaded.php, 并找到 imageAddText 方法。 将该方法修改如下:

private function imageAddText($image, array $opt) {
 // calculate watermark position and get full path to font file
 $offset = $this->calculateOffset($image, $opt);
 $opt    = $this->getFontFullpath($opt);
 
 // allocate text color
 $color = $opt['watermark_text']['color'];
 
 // 这是不透明度, 介于 0.0 和 1.0 之间, 可以参考 CSS3 关于 opacity 的说明.
 $opacity = 0.65;
 
 // Add the text to image
 $red = hexdec(substr($color, 0, 2));
 $green = hexdec(substr($color, 2, 2));
 $blue = hexdec(substr($color, 4, 2));
 $alpha = (1 - $opacity) * 127;
 $style = imagecolorallocatealpha($image, $red, $green, $blue, $alpha);
 imagettftext($image, $opt['watermark_text']['size'], 0, $offset['x'], $offset['y'], $style, $opt['watermark_text']['font'], $opt['watermark_text']['value']);
 
 return $image;
}

如果你实在懒得不想动手, 或者就是搞不来。.. 没关系, 我基于 Watermark Reloaded 1.2.4 修改了一份。 可以通过下方链接下载。

Watermark Reloaded 1.2.4 半透明水印版

Watermark Reloaded 支持半透明水印

注意: 因为图片通道问题, GIF 图片上的半透明水印会显示成红色。

插件不足

如前面所说, Watermark Reloaded 功能不强大, 不能完全满足我们的需求, 比如: 支持图片 (PNG) 水印, 文字阴影等等。 最要命的是无法根据图片大小进行自适应的水印处理。

举个例子吧, 我正在上传一个 600x600 的图片, WordPress 会为我生成 150x150 的缩略图, 但我只能定义一个大小的水印 (因为只能定义一个文字类型, 字号和尺寸)。 当我设定文字尺寸为 72px 的时候, 可能 600x600 显示的效果刚刚好, 但是 150x150 的图片还没有水印大, 被水印完全挡住。

相关插件

我用 Google 找到的第一个WordPress图片水印插件是 Marekkis Watermark. 从功能介绍看这个插件很强大, 支持布局, 修改字体, 图片水印, 透明度等等。 看似十分完美, 但很遗憾, 我在 WordPress 3.2.1 中激活插件导致页面布局异常, 所以放弃了。.. 追求某些水印功能的朋友可以一试。

后话

我的博客没有使用 WordPress 的图库功能, 也不考虑要给图片打水印。 所以关于插件的不足, 写个新给插件作者建议一下好了, 在此打住不折腾。

文章来源:http://www.neoease.com/