php 图片添加水印和二维码

时间:2024-08-07 18:34:08
        $host = $_SERVER['HTTP_HOST'];
$save_code_file = './qrcodes/qrcode.png';
QrCode::format('png')->size()->backgroundColor(,,)->generate($host,public_path($save_code_file));
$name = "张三";
$second = '李四';
$date_y = date('Y');
$date_m = intval(date('m'));
$date_d = intval(date('d'));
$font = './font/shouzhangti.ttf';//水印字体
$im = imagecreatefromjpeg("./images/hejiu.jpg");//载入图片
$black = imagecolorallocate($im, , , );//设置颜色
$save_file = './images/test1.jpg';
imagettftext($im, , , , , $black, $font, $name);//认错人
imagettftext($im, , , , , $black, $font, $date_y);//年
imagettftext($im, , , , , $black, $font, $date_m);//月
imagettftext($im, , , , , $black, $font, $date_d);//日
imagettftext($im, , , , , $black, $font, $second);//被认错者
imagettftext($im, , , , , $black, $font, $name);//认错人签名
imagettftext($im, , , , , $black, $font, $date_y);//认错人签名年
imagettftext($im, , , , , $black, $font, $date_m);//认错人签名月
imagettftext($im, , , , , $black, $font, $date_d);//认错人签名日
imagepng($im,$save_file);//输出图片,如果要保存加个保存路径和文件名,如imagepng($im,'test1.jpg');
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($save_file));
$src = imagecreatefromstring(file_get_contents($save_code_file));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($save_code_file);
//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, , , , , $src_w, $src_h, ); //如果水印图片本身带透明色,则使用imagecopy方法
// imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h); //输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($save_file);
switch ($dst_type) {
case ://GIF
header('Content-Type: image/gif');
imagegif($dst);
break;
case ://JPG
header('Content-Type: image/jpeg');
imagejpeg($dst);
break;
case ://PNG
header('Content-Type: image/png');
imagepng($dst);
break;
default:
break;
}
imagedestroy($dst);
imagedestroy($src);
imagedestroy($im);//清空缓存