php imagecopy函数添加图片水印

发布时间:2019-09-02编辑:脚本学堂
使用php imagecopy函数为图片加水印,一例简单的php图片水印代码,借助php gd库中imagecopy()函数为背景图片添加图片水印,水印位置可以随机。

php gd库中imagecopy()函数,可以复制图片的一部分。

函数的原型:
bool imagecopy(resource dst_im,resource src_im,int dst_x,int dst_y,int src_x,int src_y,int src_w,int src_h)
该函数将src_im图像中坐标从src_x,src_y开始,宽度为src_w,高度为src_h的一部分复制到dst_im图像中坐标为dst_x和dst_y的位置上。

以JPEG格式的图片为例,编写一个php图片水印代码,为图片添加水印的函数watermark()。

例子:
 

复制代码 代码示例:

<?php
//为背景图片添加图片水印(位置随机),背景图片格式为jpeg,水印图片格式为gif
function watermark($filename,$water){

//获取背景图片的宽度和高度
list($b_w,$b_h) = getimagesize($filename);

//获取水印图片的宽度和高度
list($w_w,$w_h) = getimagesize($water);

//在背景图片中放水印图片的位置随机起始位置
$posX = rand(0, ($b_w-$w_w));
$posY = rand(0, ($b_h-$w_h));

//创建背景图片的资源
$back = imagecreatefromjpeg($filename);

//创建水印图片的资源
$water = imagecreatefromgif($water);

//使用imagecopy()函数将水印图片复制到背景图片指定的位置中
imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);

//保存带有水印图片的背景图片
imagejpeg($back,$filename);
imagedestroy($back);
imagedestroy($water);
}

//输出水印图片
watermark("brophp.jpg", "logo.gif");
?>