ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してQRコードに部分的に透明なロゴを追加する方法

PHPを使用してQRコードに部分的に透明なロゴを追加する方法

WBOY
WBOYオリジナル
2016-06-23 13:20:011152ブラウズ

使用した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 に直接絵を描いた方が簡単ではないでしょうか?
それは確かに上記の効果です。私は PHP 描画を初めて使用するため、それについてあまり知りません


この効果?

$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 描画を初めて使用するため、よく理解していない関数がたくさんあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。