この記事では、主に PHP で複数の画像を結合する方法について説明します。PHP の imagecopymerge 関数は、2 つの画像がオーバーレイされるときにオーバーレイの透明度の設定をサポートします。実際、PHP の内部では imagecopy 関数はオーバーレイの透明度をサポートしません。ソース コードでは、imagecopymerge の透明度パラメータは次のとおりです。 100 の場合、imagecopy 関数を直接呼び出します。
ただし、imagecopy 関数はコピー時に PNG 画像の元の透明情報を保持できますが、imagecopymerge は画像自体の透明コピーをサポートしません。
実際の例を示します:
ロゴを入れます。画像に透かしを入れます。
一般的に、ロゴは透過 PNG 画像、logo.png などのアイコンと URL で構成されます。
このロゴを画像上に配置したい場合は、
imagecopymerge 関数を使用して、明るい色を追加します透かしアイコンの透明度は 30% ですが、IE6 は png の透明度をサポートしていないため、ロゴ自体の png は不透明になります。imagecopy 機能を使用すると、ロゴ自体の透明度を保持できますが、30% の光を実現することはできません。ウォーターマーク オーバーレイ、
php 誰かがそれを実装した公式の方法は、imagecopymerge_alpha 関数を使用してこれら 2 つの関数の機能を直接実装することですが、png 自体の透明度を保持しながら、カスタムの透明度オーバーレイを実現できます。この関数は、透明性を実現するための $opacity = 100 - $opacity; ちょうどその逆のようです
$dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); imagecopy($dst, $src, 100, 100, 0, 0, 100, 100);//完成合并
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){ $opacity=$pct; // getting the watermark width $w = imagesx($src_im); // getting the watermark height $h = imagesy($src_im); // creating a cut resource $cut = imagecreatetruecolor($src_w, $src_h); // copying that section of the background to the cut imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h); // inverting the opacity $opacity = 100 - $opacity; // placing the watermark now imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h); imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity); }
関連する推奨事項:
php は WeChat で画像の結合を実現します - Jiugongge photos
以上がPHPで複数の画像を結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。