gpt4 book ai didi

php - 在 PHP 中使用水印显示多个图像

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:24 25 4
gpt4 key购买 nike

我想在多个图像上添加水印并在浏览器上显示它们。这是我的一段代码:

<?php
include('admin/connect.php');
$q = mysql_query("select * from ring");
while($row=mysql_fetch_array($q)){
$img = 'admin/'.$row['Image'];
$stamp = imagecreatefrompng('admin/image/watermark.png');
$im = imagecreatefromjpeg($img);
$marge_right= 20;
$marge_bottom = 50;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
}
?>

我在我的代码中使用了 header('Content-type: image/png');,因此我无法显示所有图像。在这里,我从数据库中获取图像,然后在其上添加水印,但如果你们中的任何人都可以帮助我先添加水印,然后将其保存在数据库中,那就更好了。提前致谢。

最佳答案

你不能在一个页面中有多个标题,如 header('Content-type: image/png')(每页只能有一个 Content-Type),但你可以有多个标签。如果你想修改原始图像,你不需要在数据库中进行更新,在这种情况下就是代码。

<?php
include('admin/connect.php');
$q = mysql_query("select * from ring");
while($row=mysql_fetch_array($q)){
$img = 'admin/'.$row['Image'];
$stamp = imagecreatefrompng('admin/image/watermark.png');
$im = imagecreatefromjpeg($img);
$marge_right= 20;
$marge_bottom = 50;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
imagejpeg($im, 'admin/' . $row['Image']); //This overwrite your original image

echo "<img src='admin/" . $row['Image'] . "' /><br/>";
</div>
}
?>

如果你想保留你的原始图像,你必须用另一个名字保存你的图像水印,然后更新数据库中的名称,在这种情况下你可以这样做:

<?php
include('admin/connect.php');
$q = mysql_query("select * from ring");
while($row=mysql_fetch_array($q)){
$img = 'admin/'.$row['Image'];
$stamp = imagecreatefrompng('admin/image/watermark.png');
$im = imagecreatefromjpeg($img);
$marge_right= 20;
$marge_bottom = 50;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
imagejpeg($im, 'admin/' . 'wm-' . $row['Image']); //Saving the watermarked with the prefix wm

echo "<img src='admin/" . 'wm-' . $row['Image'] . "' /><br/>";
</div>
}

mysql_query("UPDATE ring SET Image = CONCAT('wm-', Image)"); //Updating all your image with the prefix wm-
?>

关于php - 在 PHP 中使用水印显示多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28514146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com