-1

我会直奔主题的。我已经使用 htaccess 安装了 Watermark。一切正常,但我不知道如何使脚本不在小于 200x200 的图像上放置水印。水印也在 watermark.png 的底部显示一条灰线。如何删除该行?

我反对不努力。我做了 4 个小时的研究,结果修改得很糟糕,以至于我的照片都毁了。我找到了要添加到 php 的行,以便不在小图像上放置水印,但不知道在哪里放置它。

这是在图像上放置水印的 .php。请帮助对我来说这很复杂。

<?php
$basedir="/uploads/";
$watermarkimage="tbwm.png";

$file=basename($_GET['i' ]);

$image = $basedir."/".$file;
$watermark = $basedir."/".$watermarkimage;

$im = imagecreatefrompng($watermark);

$ext = substr($image, -3);

if (strtolower($ext) == "gif") {
if (!$im2 = imagecreatefromgif($image)) {
echo "Error opening $image!"; exit;
}
} else if(strtolower($ext) == "jpg") {
if (!$im2 = imagecreatefromjpeg($image)) {
echo "Error opening $image!"; exit;
}
} else if(strtolower($ext) == "png") {
if (!$im2 = imagecreatefrompng($image)) {
echo "Error opening $image!"; exit;
}
} else {
die;
}
imagefilledrectangle($im2, 0  , (imagesy($im2))-(imagesy($im)) , imagesx($im2)  , imagesy($im2) , imagecolorallocatealpha($im2, 0, 0, 0, 100) );
imagecopy($im2, $im, (imagesx($im2)-(imagesx($im))), (imagesy($im2))-(imagesy($im)), 0, 0, imagesx($im), imagesy($im));

$last_modified = gmdate('D, d M Y H:i:s T' , filemtime ($image));

header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
imagejpeg($im2,NULL,95);
imagedestroy($im);
imagedestroy($im2);

?>
4

1 回答 1

1

快速方法:
只需将imagecopy函数调用放入if(imagesx(im2) > 250 && imagesy(im2) > 250)

if (imagesx($im2) > 250 && imagesy($im2) > 250) {
    imagefilledrectangle($im2, 0  , (imagesy($im2))-(imagesy($im)) , imagesx($im2)  , imagesy($im2) , imagecolorallocatealpha($im2, 0, 0, 0, 100));
    imagecopy($im2, $im, (imagesx($im2)-(imagesx($im))), (imagesy($im2))-(imagesy($im)), 0, 0, imagesx($im), imagesy($im));
}

很长的路要走:
将所有为水印 im 创建的内容放入if

于 2012-12-22T02:07:14.427 回答