rinald_未来往事

php图片添加水印/图片合成/水印平铺

PHP
php图片加水印,php文字水印,php平铺水印,php图片水印,php图片添加图文 平铺水印。

图片添加文字水印

  1. $bigImgPath = '08.jpg';  
  2. $img = imagecreatefromstring(file_get_contents($bigImgPath));  
  3. $color = imagecolorallocatealpha($img,255,255,255,60);  
  4. $font = './zzgkt.ttf';//字体  
  5. $fontSize = 18;   //字体大小  
  6. $circleSize = 15; //旋转角度  
  7. $left = 50;      //左边距  
  8. $top = 200;  //顶边距  
  9. $str = '未来往事[fity.cn]';   
  10. imagefttext($img$fontSize$circleSize$left$top$color$font$str);  
  11. //imagettftext($img,$fontSize,$circleSize,$left,$top,$color,$font,$str);  
  12. header("content-type:image/jpeg");   
  13. imagejpeg($img);   
  14. imagedestroy($img);  
点击在新窗口中浏览此图片

图片合成 图片水印

  1. $bigImgPath = '08.jpg';  
  2. $qCodePath = 'cli.png';  
  3. $img = imagecreatefromstring(file_get_contents($bigImgPath)); //或者imagecreatefromjpeg  
  4. $qCodeImg = imagecreatefrompng($qCodePath);   
  5.   
  6. list($qCodeWidth$qCodeHight$qCodeType) = getimagesize($qCodePath);  
  7. $fontSize = 18;   //字体大小  
  8. $circleSize = 15; //旋转角度  
  9. $left = 308;      //左边距  
  10. $top = 258;  //顶边距  
  11. // imagecopymerge使用注解  
  12. imagecopymerge($img$qCodeImg$left$top, 0, 0, $qCodeWidth$qCodeHight, 100);  
  13. list($bigWidth$bigHight$bigType) = getimagesize($bigImgPath);   
  14. switch ($bigType) {  
  15.     case 1: //gif  
  16.         header('Content-Type:image/gif');  
  17.         imagegif($img);  
  18.         break;  
  19.     case 2: //jpg  
  20.         header('Content-Type:image/jpg');  
  21.         imagejpeg($img);  
  22.         break;  
  23.     case 3: //jpg  
  24.         header('Content-Type:image/png');  
  25.         imagepng($img);  
  26.         break;  
  27.     default:  
  28.         # code...  
  29.         break;  
  30. }  
  31. imagedestroy($img);  
  32. imagedestroy($qcodeImg);  
点击在新窗口中浏览此图片
关于水印图片不透明可以参考本博客另外一篇文章《imagecopymerge合成图片 黑色背景问题解决

文字水印平铺 图片水印平铺

方法一:相对来说该方式较为传统~~~
  1. $bigImgPath = '08.jpg';  
  2. $im = imagecreatefromstring(file_get_contents($bigImgPath));  
  3.   
  4. $logo = './logo.png';  
  5. $watermark = imagecreatefromstring(file_get_contents($logo));  
  6.   
  7. $color = imagecolorallocatealpha($im,255,255,255,60);  //设置字体颜色及透明度  
  8. $font = './zzgkt.ttf';  //字体  
  9.   
  10. list($bgWidth$bgHight$bgType) = getimagesize($bigImgPath);  
  11. $fontSize = 18;   //字体大小  
  12. $circleSize = 30; //旋转角度  
  13. $x_length = $bgWidth-10; //x轴总长度  
  14. $y_length = $bgHight-10; //y轴总长度  
  15. $x_padding = 1; //x轴与y轴起始位置边距  
  16. $y_padding = 0;  
  17.   
  18. $str = '未来往事[fity.cn]';   
  19.   
  20. for ($x=$x_padding;$x<$x_length$x++) {    
  21.   for ($y=$y_padding$y<$y_length ; $y++) {   
  22.     imagettftext($im,$fontSize,$circleSize,$x,$y,$color,$font,$str);  //文字水印  
  23.     // imagecopymerge_alpha($im, $watermark, $x, $y, 0, 0, 168, 130, 20);  //图片水印合成  
  24.     $y += 190 ;   
  25.   }   
  26.   $x += 300 ;    
  27. }  
  28. // $im = imagejpeg($im,'test.jpg',100);  
  29. header("content-type:image/jpeg");   
  30. imagejpeg($im);   
点击在新窗口中浏览此图片

方法二:使用php_imagick扩展类库
  1. $image = new imagick('08.jpg');   
  2. $im = new imagick();  
  3. $im->newimage( 140, 80, new imagickpixel( "none" ) );   
  4. $draw = new imagickdraw();   
  5. $draw->setfillcolor(new imagickpixel( "grey" ));  
  6. $draw->setgravity(imagick::gravity_northwest);  
  7. $draw->annotation(10,10 ,'copyright');  
  8. $draw->setgravity(imagick::gravity_southeast);  
  9. $draw->annotation(5,15 ,'copyright');  
  10. $im->drawimage( $draw);   
  11. $image = $image->textureimage($im);  
  12. $image->compositeimage($image,imagick::composite_copy,0,0);  
  13. header( "content-type: image/{$image->getimageformat()}" );  
  14. $image->writeimage('wmark_text_tiled.jpg');  
  15. $image->clear();  
  16. $image->destroy();  
PS:使用该方式需要先配置php环境支持imagick扩展类库,类库下载:
http://pecl.php.net/package/imagick

综合Demo示例

点击打开,建议使用手机浏览器打开测试
点击在新窗口中浏览此图片

原文作者:rinald
原文地址:http://fity.cn/post/613.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

已有2位网友发表了看法:

1L小五 2017-06-28 13:24:08 回复
dome已经失效了 麻烦发一份dome到邮箱327712043@qq.com 行不
1Lrinald 2017-07-03 11:07:44 回复
@小五 你好 欢迎来访 博客近期在更新调整基础程序 会尽快将老的附件转移进来 感谢支持。

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。