ホームページ >バックエンド開発 >PHPチュートリアル >PHPで複数の画像を結合する方法

PHPで複数の画像を結合する方法

小云云
小云云オリジナル
2018-02-27 10:32:372696ブラウズ

この記事では、主に 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 サイトの他の関連記事を参照してください。

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