我目前使用以下代码即时为图像添加水印并将它们显示在网页中:
header('Content-type: image/jpeg');
$stamp = imagecreatefrompng(watermark.png');
$im = imagecreatefromjpeg($filename);
imagecopy($im, $stamp, 10, imagesy($im) - imagesy($stamp) - 10, 0, 0, imagesx($stamp), imagesy($stamp));
imagejpeg($im);
imagedestroy($im);
我还有很多存储在 zip 档案中的图像。我目前使用以下代码显示它们。
$zip = new ZipArchive();
$opened = $zip->open($zipname, ZIPARCHIVE::CHECKCONS);
if ( $opened === true ){
$content = $zip->getFromName($filename);
header('Content-type: image/jpeg');
echo $content;
};
$zip->close();
我也想给它们加水印,但似乎无法让它工作。作为初始测试,我尝试将 $content 的输出从 echo 更改为:
imagejpeg($content);
但这不起作用,这意味着添加其他水印代码也不起作用。任何有关如何修改邮政编码以包含水印的建议将不胜感激。
我基本上不明白使用 imagecreatefromjpeg 在 $im 中创建的内容与从 zip 存档中提取到 $output 的内容之间的区别。我假设 $output 包含原始 jpg 文件数据,但不知道 $im 包含什么。