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圖片

相關文章
相關標籤/搜索