watermarking gallery items

时间:2013-02-10 作者:10wtaylor

如何使用中的函数仅向要在库中发布的图像添加图像水印functions.php? 图像可以在.jpg, .png, .gif 总体安排

我也found this snippet 它提供相同的服务,但对所有上传的图像进行水印处理。

1 个回复
最合适的回答,由SO网友:Simon 整理而成

这是我在watermark.php 文件:

<?php
// loads a png, jpeg or gif image from the given file name
function imagecreatefromfile($image_path) {
// retrieve the type of the provided image file
list($width, $height, $image_type) = getimagesize($image_path);

// select the appropriate imagecreatefrom* function based on the determined
// image type
switch ($image_type)
 {
  case IMAGETYPE_GIF: return imagecreatefromgif($image_path); break;
  case IMAGETYPE_JPEG: return imagecreatefromjpeg($image_path); break;
  case IMAGETYPE_PNG: return imagecreatefrompng($image_path); break;
  default: return \'\'; break;
 }
}

// load source image to memory
$image = imagecreatefromfile($_GET[\'image\']);
if (!$image) die(\'Unable to open image\');

// load watermark to memory
$watermark = imagecreatefromfile($_GET[\'watermark\']);
if (!$image) die(\'Unable to open watermark\');

// calculate the position of the watermark in the output image (the
// watermark shall be placed in the lower right corner)
 $watermark_pos_x = imagesx($image) - imagesx($watermark) - 8;
$watermark_pos_y = imagesy($image) - imagesy($watermark) - 10;

// merge the source image and the watermark
  imagecopy($image, $watermark,  $watermark_pos_x, $watermark_pos_y, 0, 0,
  imagesx($watermark), imagesy($watermark));

// output watermarked image to browser
header(\'Content-Type: image/jpeg\');
imagejpeg($image, \'\', 100);  // use best image quality (100)

// remove the images from memory
imagedestroy($image);
imagedestroy($watermark);
?>

然后变成.htaccess 文件:

RewriteEngine on
RewriteCond %{REQUEST_URI} (800x...|...x800)\\.(png|jpe?g|gif)
RewriteRule ^([^tn].*\\.(gif|jpg|png))$ /wp-content/uploads/watermark.php?image=$1&watermark=watermark.png [NC]
放置watermark.php + .htaccess + watermark.png 进入wp-content/uploads 文件夹(或任何其他位置,如果您调整.htaccess 行)。

这里是。htaccess获取名称中包含800x或x800的jpg、png或gif请求(仅在大图像上应用水印),将其重定向到watermark.php 在图像上添加水印的脚本。

这是一个初学者,您应该通过定义要在中应用的规则来适应您的需要.htaccess文件对于我们的案例,我们在媒体选项中定义了800x800大小。

结束

相关推荐

Hierarchical gallery

我想要几个画廊,每个画廊都有几个图片。这种两级结构的正确方式是什么?我会把每个画廊的每一个元素都做成一个帖子。