用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1857|回复: 0
打印 上一主题 下一主题

php给图片添加文字水印方法汇总

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:42:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            1: 面向过程的编写方法
//指定图片路径
$src = '001.png';
//获取图片信息
$info = getimagesize($src);
//获取图片扩展名
$type = image_type_to_extension($info[2],false);
//动态的把图片导入内存中
$fun = "imagecreatefrom{$type}";
$image = $fun('001.png');
//指定字体颜色
$col = imagecolorallocatealpha($image,255,255,255,50);
//指定字体内容
$content = 'helloworld';
//给图片添加文字
imagestring($image,5,20,30,$content,$col);
//指定输入类型
header('Content-type:'.$info['mime']);
//动态的输出图片到浏览器中
$func = "image{$type}";
$func($image);
//销毁图片
imagedestroy($image);
2:面向对象的实现方法
class Image_class {
  private $image;
  private $info;
  /**
   * @param $src:图片路径
   * 加载图片到内存中
   */
  function __construct($src){
    $info = getimagesize($src);
    $type = image_type_to_extension($info[2],false);
    $this -> info =$info;
    $this->info['type'] = $type;
    $fun = "imagecreatefrom" .$type;
    $this -> image = $fun($src);
  }
  /**
   * @param $fontsize: 字体大小
   * @param $x: 字体在图片中的x位置
   * @param $y: 字体在图片中的y位置
   * @param $color: 字体的颜色是一个包含rgba的数组
   * @param $text: 想要添加的内容
   * 操作内存中的图片,给图片添加文字水印
   */
  public function fontMark($fontsize,$x,$y,$color,$text){
    $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
    imagestring($this->image,$fontsize,$x,$y,$text,$col);
  }
  /*
   * 输出图片到浏览器中
   */
  public function show(){
    header('content-type:' . $this -> info['mime']);
    $fun='image' . $this->info['type'];
    $fun($this->image);
  }
  /**
   * 销毁图片
   */
  function __destruct(){
    imagedestroy($this->image);
  }
}
//对类的调用
$obj = new Image_class('001.png');
$obj->fontMark(20,20,30,array(255,255,255,60),'hello');
$obj->show();
3.支持以图片和文字两种方式给图片添加水印。图片支持GIF,PNG,JPG三种格式,水印图片支持PNG和GIF
function setWater($,$markImg,$markText,$TextColor,$markPos,$fontType,$markType)
{
  $srcInfo = @getimagesize($);
  $srcImg_w  = $srcInfo[0];
  $srcImg_h  = $srcInfo[1];
   
  switch ($srcInfo[2])
  {
    case 1:
      $srcim =imagecreatefromgif($);
      break;
    case 2:
      $srcim =imagecreatefromjpeg($);
      break;
    case 3:
      $srcim =imagecreatefrompng($);
      break;
    default:
      die("不支持的图片文件类型");
      exit;
  }
   
  if(!strcmp($markType,"img"))
  {
    if(!file_exists($markImg) || empty($markImg))
    {
      return;
    }
      
    $markImgInfo = @getimagesize($markImg);
    $markImg_w  = $markImgInfo[0];
    $markImg_h  = $markImgInfo[1];
      
    if($srcImg_w
参数说明:
$:目标图片,可带相对目录地址,
$markImg:水印图片,可带相对目录地址,支持PNG和GIF两种格式,如水印图片在执行文件mark目录下,可写成:mark/mark.gif
$markText:给图片添加的水印文字
$TextColor:水印文字的字体颜色
$markPos:图片水印添加的位置,取值范围:0~9
0:随机位置,在1~8之间随机选取一个位置
1:顶部居左 2:顶部居中 3:顶部居右 4:左边居中
5:图片中心 6:右边居中 7:底部居左 8:底部居中 9:底部居右
$fontType:具体的字体库,可带相对目录地址
$markType:图片添加水印的方式,img代表以图片方式,text代表以文字方式添加水印
4.给图片加文字水印的方法
            
            
您可能感兴趣的文章:
  • 用来给图片加水印的PHP类
  • php上传图片并给图片打上透明水印的代码
  • 超级好用的一个php上传图片类(随机名,缩略图,加水印)
  • PHP 透明水印生成代码
  • php加水印的代码(支持半透明透明打水印,支持png透明背景)
  • php图片加水印原理(超简单的实例代码)
  • php文字水印和php图片水印实现代码(二种加水印方法)
  • ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
  • 功能强大的PHP图片处理类(水印、透明度、旋转)
  • php使用imagecopymerge()函数创建半透明水印
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则