大成资源网 · 专注于为用户提供免费的精品资源,好货不私藏!

PHP 怎样实现图片平铺与倾斜水印效果?看这篇优化代码!

admin 源码插件
  1. // 图片和水印文件路径
  2. $img = 'test.jpg';
  3. $source = 'source.png';
  4. // 参数设置,值越大水印越稀(水印平铺的越少)
  5. $ww = 0;  // 每个水印的左右间距
  6. $hh = 0;  // 每个水印的上下间距
  7. // 水印图片旋转角度
  8. $angle = 30;
  9. // 水印透明度
  10. $opacity = 20;
  11. // 获取图片和水印的信息
  12. $imgInfo = getimagesize($img);
  13. $sourceInfo = getimagesize($source);
  14. // 创建水印图像资源
  15. $waterFun = 'imagecreatefrom' . image_type_to_extension($sourceInfo[2], false);
  16. $water = $waterFun($source);
  17. // 水印图片旋转
  18. $water = imagerotate($water, $angle, imageColorAllocateAlpha($water, 0, 0, 0, 127));
  19. // 获取水印图片旋转后的宽度和高度
  20. $waterWidth = imagesx($water);
  21. $waterHeight = imagesy($water);
  22. // 设定水印图像的混色模式
  23. imagealphablending($water, true);
  24. // 创建图片图像资源
  25. $imgFun = 'imagecreatefrom' . image_type_to_extension($imgInfo[2], false);
  26. $thumb = $imgFun($img);
  27. // 定义平铺数据
  28. $xLength = $imgInfo[0] - 10; // x轴总长度
  29. $yLength = $imgInfo[1] - 10; // y轴总长度
  30. // 循环平铺水印
  31. for ($x = 0; $x < $xLength; $x += $waterWidth + $ww) {
  32. for ($y = 0; $y < $yLength; $y += $waterHeight + $hh) {
  33. imagecopymerge($thumb, $water, $x, $y, 0, 0, $waterWidth, $waterHeight, $opacity);
  34. }
  35. }
  36. // 输出图片
  37. header("Content-type: " . $imgInfo['mime']);
  38. $outputFunction = 'image' . image_type_to_extension($imgInfo[2], false);
  39. $outputFunction($thumb);
  40. // 销毁图片资源
  41. imagedestroy($thumb);
  42. // 销毁水印资源
  43. imagedestroy($water);   

复制代码

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!