php创建画布水印,PHP创建水印

这篇文章主要介绍了PHP创建水印,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

1.文字水印添加 使用imagefttext 函数<?php /**

* 为图片添加文字水印

* @param string $dst_path 原图路径

* @param string $font_path 字体存放路径

* @param string $string_font 欲添加的文字

*/function textwatermark($dst_path,$font_path,$string_font){

//创建图片的实例

$dst = imagecreatefromstring(file_get_contents($dst_path)); //添加文字

$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);

imagefilledrectangle($dst, 0, 0, 79, 49, 0x0000FF);

imagefilledrectangle($dst, 9, 9, 70, 40, 0xFFFFFF);

imagefttext($dst, 13, 0, 20, 20, $black, $font_path, $string_font); //输出图片

list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); switch ($dst_type) { case 1://IMAGETYPE_GIF

header('Content-Type: image/gif');

imagegif($dst); break; case 2://IMAGETYPE_JPEG

header('Content-Type: image/jpeg');

imagejpeg($dst); break; case 3://IMAGETYPE_PNG

header('Content-Type: image/png');

imagepng($dst); break; default: break;

}

imagedestroy($dst);

}

header('charset=utf-8');$dst_path = './uploads/1.jpg';//选择的字体需支持中文 arial.ttf不支持中文$font_path = 'C:/Windows/Fonts/simhei.ttf';

//当文件编码为utf-8时 不需转换 $string_font = '剑liang';

textwatermark($dst_path,$font_path,$string_font);?>

2.图片水印 使用imagecopymerge 函数<?php /**

* 添加图片水印功能

* @param resource $dst_path 原图路径

* @param resource $src_path 水印图片路径

* @param int $pact 水印合并效果,默认为50

* @param int $postion 添加水印位置,默认为右下角

*/function watermark($dst_path,$src_path, $pct = 50,$postion = 5){

//创建图片的实例

$dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); // 从数组中获取原图和水印图片的宽和高

list($dst_w, $dst_h) = getimagesize($dst_path); list($src_w, $src_h) = getimagesize($src_path); switch ($postion) { case 1: // 左上

$src_x = $src_y = 0;

break; case 2: // 右上

$src_x = $dst_w - $src_w; $src_y = 0;

break; case 3: // 中间

$src_x = ($dst_w - $src_w) / 2; $src_y = ($dst_h - $src_h) / 2;

break; case 4: // 左下

$src_x = 0; $src_y = $dst_h - $src_h;

break; case 5: // 右下

$src_x = $dst_w - $src_w; $src_y = $dst_h - $src_h;

break; default: break;

} //将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果

imagecopymerge($dst, $src, $src_x, $src_y, 0, 0, $src_w, $src_h, $pct); //如果水印图片本身带透明色,则使用imagecopy方法

// imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);

//输出图片

list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); switch ($dst_type) { case 1://IMAGETYPE_GIF

header('Content-Type: image/gif');

imagegif($dst); break; case 2://IMAGETYPE_JPEG

header('Content-Type: image/jpeg');

imagejpeg($dst); break; case 3://IMAGETYPE_PNG

header('Content-Type: image/png');

imagepng($dst); break; default: break;

}

imagedestroy($dst);

imagedestroy($src);

}$source = './uploads/1.jpg';$water = './uploads/6.jpg';

watermark($source, $water, 50, 5);?>

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值