php文字水印和php图片水印实现代码(二种加水印方法)

 更新时间:2013年12月25日 14:48:44   作者:  
有时上传图片时需要给网站加上水印,水印可以分为文字水印和图片水印,下面就实现这二种水印

文字水印

文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下:

实现代码如下:

复制代码 代码如下:

$dst_path = 'dst.jpg';

//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));

//打上文字
$font = './simsun.ttc';//字体
$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色
imagefttext($dst, 13, 0, 20, 20, $black, $font, '快乐编程');

//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}

imagedestroy($dst);

图片水印

图片水印就是将一张图片加在另外一张图片上,主要使用gd库的imagecopy和imagecopymerge。效果图如下:

实现代码如下:

复制代码 代码如下:

$dst_path = 'dst.jpg';
$src_path = 'src.jpg';

//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));

//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);

//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色,则使用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://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}

imagedestroy($dst);
imagedestroy($src);

相关文章

  • 解决yii2左侧菜单子级无法高亮问题的方法

    解决yii2左侧菜单子级无法高亮问题的方法

    这篇文章主要为大家详细介绍了解决yii2左侧菜单子级无法高亮问题的方法,感兴趣的朋友可以参考一下
    2016-05-05
  • php简单实现MVC

    php简单实现MVC

    文章简单介绍了MVC的概念,php中的MVC,使用MVC的原因,以及如何简单是先MVC,非常详细,这里推荐给大家。
    2015-02-02
  • PHP中命名空间的使用例子

    PHP中命名空间的使用例子

    今天小编就为大家分享一篇关于PHP中命名空间的使用例子,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 关于laravel5.5的定时任务详解(demo)

    关于laravel5.5的定时任务详解(demo)

    今天小编就为大家分享一篇关于laravel5.5的定时任务详解(demo),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP插入排序实现代码

    PHP插入排序实现代码

    插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。
    2013-04-04
  • PHP二维关联数组的遍历方式(实例讲解)

    PHP二维关联数组的遍历方式(实例讲解)

    下面小编就为大家带来一篇PHP二维关联数组的遍历方式(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • thinkPHP框架整合tcpdf插件操作示例

    thinkPHP框架整合tcpdf插件操作示例

    这篇文章主要介绍了thinkPHP框架整合tcpdf插件操作,结合实例形式较为详细的分析了thinkPHP框架整合tcpdf插件的具体步骤、相关操作技巧与注意事项,需要的朋友可以参考下
    2018-08-08
  • Laravel学习教程之广播模块详解

    Laravel学习教程之广播模块详解

    这篇文章主要给大家介绍了关于Laravel学习教程之广播模块的相关资料,广播是指发送方发送一条消息,订阅频道的各个接收方都能及时收到消息,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • Yii2中DropDownList简单用法示例

    Yii2中DropDownList简单用法示例

    这篇文章主要介绍了Yii2中DropDownList简单用法,实例分析了DropDownList下拉列表的基本调用方法,需要的朋友可以参考下
    2016-07-07
  • php实现文件编码批量转换

    php实现文件编码批量转换

    转换文件编码,比如原来是gbk,转换成utf-8的,可以转单个文件也可以转换整个目录的文件,可选是否递归目录
    2014-03-03

最新评论