<?php
include('core/init.php');
$name = mysql_result(mysql_query("SELECT `photo_urlpath` FROM photos ORDER BY `photo_id` DESC LIMIT 1"), 0);
if($name == false){
echo "Failed to open $name";
} else {
echo "Worked! <br>" . "$name";
}
$stamp = imagecreatefrompng('upload/watermarkMQ.png');
$im = imagecreatefromjpeg($name);
// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Copy the stamp image onto our photo using the margin offsets and the photo
// width to calculate positioning of the stamp.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);
// Output and free memory
imagejpeg($im, "wm_" . $name);
imagedestroy($im);
?>
mysql结果返回photo_urlpath并且它正常工作,因为它回应了“Worked!”然后是文件名。
唯一不起作用的是 imagejpeg($ im,“wm_”。$ name);
我想使用相同的文件名,但在原始图像名称之前使用wm_。 但是使用该代码它不会输出任何内容。当我用'test.jpg'替换$ name时,它会工作并输出一个漂亮的wm_test.jpg文件。
您是否无法将变量用作输出文件名?
答案 0 :(得分:0)
我不确定它是否对您的情况有帮助,但我正在从文本文件中读取文件名,并且存储路径的每个字符串变量在结尾处仍然具有行尾字符。我只是使用
将其剪掉 $fileName = substr($fileName, 0, -1);
现在它完美无缺。我建议你检查SQL查询返回的内容。可能会有某些特殊字符需要删除。