zoukankan      html  css  js  c++  java
  • PHP实现图片水印功能

    一、什么是水印

    所谓数字水印是向数据多媒体(如图像、声音、视频信号等)中添加某些数字信息以达到文件真伪鉴别、版权保护等功能。

    二、水印功能

    • 真伪鉴别
    • 版权保护
    • 防盗链

    三、水印图像实现

    • 通过PS等设计软件,进行设计实现
    • 通过PHP等编程语言来设计实现

    四、水印实现原理图

    • 文字水印(验证码)
    • 图片水印:把一张图片嵌入在另一张图片中

    五、水印制作五步走

    第一步:获取目标图片资源(原图像),imagecreatefrom(jpeg|gif|png)
    第二步:获取水印图片资源(水印图像),imagecreatefrom(jpeg|gif|png)
    第三步:采样合并

    要使用到的知识点:
    bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
    参数说明:
    $dst_im :目标图片资源(原图像)
    $src_im :水印图片资源(水印图)
    $dst_x :水印图片在原图像中的位置(横坐标)
    $dst_y :水印图片在原图像中的位置(纵坐标)
    $src_x :取样水印图片的位置(横坐标)
    $src_y :取样水印图片的位置(纵坐标)
    $src_w :水印图片的宽度
    $src_h :水印图片的高度
    $pct :透明度,0-100,0代表全透明,100代表不透明,0-100之间代表半透明
    功能:imagecopymerge — 拷贝并合并图像的一部分

    第四步:保存图片资源
    第五步:销毁图片资源

    六、水印图具体实现

    //1、获取目标图片资源(原图)
    $dst = imagecreatefromjpeg('girl.jpg');
    //2、获取水印图片资源(水印图)
    $src = imagecreatefromjpeg('water.jpg');
    //3、采样合并
    imagecopymerge($dst, $src, 0, 0, 0, 0, 105, 45, 50);
    //4、保存图片资源
    imagejpeg($dst,'water_girl.jpg');
    //5、销毁图片资源
    imagedestroy($src);
    imagedestroy($dst);

    扩展:可以定制水印图像的位置(左上角、右上角、左下角、右下角、居中位置)

    左上角:横坐标0,纵坐标0
    右上角:纵坐标0,横坐标(原图宽度-水印图片宽度)
    左下角:横坐标0,纵坐标(原图高度-水印图片高度)
    右下角:横纵坐标都是使用原图-水印图宽高
    居中位置:
    横坐标 :ceil((原图宽度-水印图宽度)/2)
    纵坐标 :ceil((原图高度-水印图高度)/2)

  • 相关阅读:
    网络性能评估
    HTML5 historyState pushState、replaceState
    pre换行段落间距
    2、hibernate七步走完成增删改查
    8.多线程和Socket通信
    7..使用反射动态创建数组和访问数组
    5. Java反射机制
    11、触发器
    10.程序包
    9.函数
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522320.html
Copyright © 2011-2022 走看看