首页 / PHP / 使用php为图像添加水印
使用php为图像添加水印
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用php为图像添加水印,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2317字,纯文字阅读大概需要4分钟。
内容图文
![使用php为图像添加水印](/upload/InfoBanner/zyjiaocheng/776/677c70a1f1ed4738947676dee812303a.jpg)
我的网站(以html和php编码完整)包含一项允许某些用户上传图片的功能.使用以下代码调整图片的大小和水印:
function watermarkpic($filename) {
ini_set('max_input_time', 300);
require 'config.php';
$watermark = imagecreatefrompng('watermarknew.png');
$watermarkwidth = imagesx($watermark);
$watermarkheight = imagesy($watermark);
if(preg_match('/[.](jpg)$/', $filename)) {
$originalimage = imagecreatefromjpeg($path_to_image_directory . $filename);
} else if (preg_match('/[.](gif)$/', $filename)) {
$originalimage = imagecreatefromgif($path_to_image_directory . $filename);
} else if (preg_match('/[.](png)$/', $filename)) {
$originalimage = imagecreatefrompng($path_to_image_directory . $filename);
}
$originalwidth = imagesx($originalimage);
$originalheight = imagesy($originalimage);
$maxsize = 800;
$imgratio = $originalwidth / $originalheight;
if($imgratio > 1) {
$finalwidth = $maxsize;
$finalheight = $maxsize / $imgratio;
}
else {
$finalheight = $maxsize;
$finalwidth = $maxsize * $imgratio;
}
$finalimage = imagecreatetruecolor($finalwidth,$finalheight);
imagecopyresampled($finalimage, $originalimage, 0,0,0,0,$finalwidth,$finalheight,$originalwidth,$originalheight);
imagecopymerge($finalimage, $watermark, 0, 0, 0, 0, $watermarkwidth, $watermarkheight, 100);
//now move the file where it needs to go
if(!file_exists($path_to_medimage_directory)) {
if(!mkdir($path_to_medimage_directory)) {
die("There was a problem. Please try again!");
}
}
imagejpeg($finalimage, $path_to_medimage_directory . $filename);
}
问题是水印具有透明背景,但它在图像上显示为黑色背景.我见过关于alpha混合等的东西,但我真的不知道这是什么.我想了解我在做什么,以及解决问题,以便水印是透明的.真实的画面应该填补空间.
提前致谢.
解决方法:
斯科特,这里可以发生很多事情.
>您需要确保使用未编入索引的Alpha透明度保存PNG.索引透明度基本上表示“此颜色(可能是黑色)将在整个图像中显示为透明.”当浏览器或图像编辑器读取它时,它可能是透明的,但特别是如果你将它与J??PG合并,透明度将不会受到尊重.如果您想了解更多信息,请尝试http://www.idux.com/2011/02/27/what-are-index-and-alpha-transparency/
>确保为两个图像获得正确的尺寸.请参阅Transparent PNG over JPG in PHP以确保您没有遇到同样的问题.
>如果您仍遇到问题,可以查看此处:http://php.net/manual/en/image.examples.merged-watermark.php,因为它显示了如何更改图像的不透明度.它可能接近你想要完成的任务,或者可能会慢慢想到另一个想法.
内容总结
以上是互联网集市为您收集整理的使用php为图像添加水印全部内容,希望文章能够帮你解决使用php为图像添加水印所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。