PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用PHP在整个请求的图像中重复水印?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试将水印添加到目录中的所有图像,比如说www.example.com/private.这些图像中的一些具有很高的分辨率,而另一些则相对正常,因此目前我的水印对于较小的图像可以正常工作.即使将水印居中,我仍会留下较大图像的理想部分易于裁剪.

所以我的问题是,我将如何编写一个PHP脚本以在整个图像中垂直和水平重复水印?我对后端开发的了解不多,除了我知道它需要提供足够的水印保护,因此我一直在Google上四处浏览,只能找到http://www.regardadesign.co.uk/blog/post/php-image-manipulation/15,这是行不通的.

到目前为止,我已经将以下.htaccess文件放入/ private目录中:

<IfModule mod_rewrite.c>
RewriteCond %{requEST_FILename} -f
RewriteRule \.(gif|jpeg|jpg|png)$/admin/watermark.PHP [QSA,NC]
</ifModule>"

这是watermark.PHP文件中的脚本:

<?PHP
ini_set('memory_limit','200M');
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['requEST_URI'];
$image = imagecreatefromString(file_get_contents($path));
$w = imagesx($imagE);
$h = imagesy($imagE);
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
header('Content-type: image/jpeg');
imagejpeg($imagE);
imagedestroy($imagE);
imagedestroy($watermark);
exit();
?>

解决方法:

发生这种情况是因为您仅插入了一次水印.如果沿图像区域重复水印,则将达到目的.

为此,请替换图像复制行:

$img_paste_x = 0;
while($img_paste_x < $w){
    $img_paste_y = 0;
    while($img_paste_y < $h){
        imagecopy($image, $watermark, $img_paste_x, $img_paste_y, 0, 0, $ww, $wh);
        $img_paste_y += $wh;
    }
    $img_paste_x += $ww;
}

大佬总结

以上是大佬教程为你收集整理的如何使用PHP在整个请求的图像中重复水印?全部内容,希望文章能够帮你解决如何使用PHP在整个请求的图像中重复水印?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: