ホームページ >バックエンド開発 >PHPチュートリアル >PHPを使用してQRコードに部分的に透明なロゴを追加する方法
使用したQRコードです
QRコードの画像に埋め込むために、四隅と中央を白枠で透明にした画像を作成しました
しかし、合成後、元の中央の白黒の位置が透明になってしまい、以下に示すように
この状況に対処する方法、コードは次のとおりです
list($qrwidth,$qrheight) = getimagesize($imgs['qrcode']);
list($bowidth,$boheight) = getimagesize( $imgs['border'] );
$QR = imagecreatefrompng($imgs['qrcode']);
$logo_qr_width = $qrwidth / 5;スケール = $logo_width/$logo_qr_width ;
$logo_qr_height = $logo_height/$scale;
imagesavealpha($border,true); $from_width, $from_width, 0 , 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);
ImagePng($QR);
返信 ディスカッション(解決策)
この効果は?
$QR = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892452_282416.jpg');$border = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892077_864770.png');list($qrwidth, $qrheight) = array(imagesx($QR), imagesy($QR));list($bowidth, $boheight) = array(imagesx($border), imagesy($border));$logo_qr_width = $qrwidth / 5;$scale = $bowidth/$logo_qr_width;$logo_qr_height = $boheight/$scale;$from_width = ($qrwidth - $logo_qr_width) / 2;imagesavealpha($border,true);imagecolortransparent($border, imagecolorat($border, 1, 1));imagecopyresampled($QR, $border, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);ImagePng($QR);
本当は、$QR に直接絵を描いた方が簡単ではないでしょうか?
実際、$QR に直接絵を描いた方が簡単ではないでしょうか?
この効果?
$QR = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892452_282416.jpg');$border = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892077_864770.png');list($qrwidth, $qrheight) = array(imagesx($QR), imagesy($QR));list($bowidth, $boheight) = array(imagesx($border), imagesy($border));$logo_qr_width = $qrwidth / 5;$scale = $bowidth/$logo_qr_width;$logo_qr_height = $boheight/$scale;$from_width = ($qrwidth - $logo_qr_width) / 2;imagesavealpha($border,true);imagecolortransparent($border, imagecolorat($border, 1, 1));imagecopyresampled($QR, $border, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);ImagePng($QR);
良いレビューです。確かに上記の効果です。私は PHP 描画を初めて使用するため、よく理解していない関数がたくさんあります
。