本題に入ります。htaccess を使用してウォーターマークをインストールしました。すべてが機能していますが、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);
?>