PHP合成图片怎么保证清晰度?

PHP合成图片主要用的的函数  :html

  •  imagecreatefromstring  //返回一个图像标识符,其表达了从给定字符串得来的图像。图像格式将自动检测,只要 PHP 支持:JPEG,PNG,GIF,WBMP 和 GD2。canvas

  •  imageCreatetruecolor   //返回一个图像标识符,表明了一幅大小为 x_size 和 y_size 的黑色图像。函数

  •  imagecolorallocate       // 为一幅图像分配颜色spa

  •  imagecopyresampled   //实现图片缩放code

  •  imagecopymerge        //合并图片htm

  • imagepng                    //生成png图片blog

$logo = './qrcode/a.png';  //准备好的logo图片
$QR = './a.png';           //已经生成的原始二维码图
if (file_exists($logo)) {
  $QR = imagecreatefromstring(file_get_contents($QR));//目标图象链接资源。
            
  $logo = imagecreatefromstring(file_get_contents($logo));//源图象链接资源。
            
  //建立一个和二维码图片同样大小的真彩色画布
  //(ps:只有这样才能保证后面copy装备图片的时候不会失真)
  $canvas = imageCreatetruecolor(imagesx($QR),imagesy($QR));
            
  //为真彩色画布建立白色背景,再设置为透明
  $color = imagecolorallocate($canvas, 255, 255, 255);
  imagefill($canvas, 0, 0, $color);
  //imageColorTransparent($canvas, $color); //能够设为透明背景
            
  //首先将二维码画布采样copy到真彩色画布中,不会失真
  imagecopyresampled($canvas,$QR,0,0,0,0,imagesx($QR),imagesy($QR),
  imagesx($QR),imagesy($QR));
            
  //再将装备图片copy到已经具备人物图像的真彩色画布中,一样也不会失真
  imagecopymerge($canvas,$logo,(imagesx($QR)-imagesx($logo))/2,
  (imagesy($QR)-imagesy($logo))/2,0,0,imagesx($logo),imagesy($logo), 100);
            
  //将画布保存到指定的png文件
            
  imagepng($canvas, './qrcode/'.'qrcode.png');
            
  imagedestroy($QR);
            
  imagedestroy($logo);
            
  return '<img src="'.'/qrcode/qrcode.png'.'" alt="">';
}

https://www.doadc.com/index/blog/detail/aid/86.html图片

相关文章
相关标签/搜索