私は他の2つから1つのPNG画像を作成しています。GD with PHPを使って画像をマージする
画像AとBは同じ寸法ですが、どちらも200x400pxです。最終的なイメージは同じです。
私はPHPでGDライブラリを使用しています。
オリジナルのPNG-8からPNG-24を作成し、次にカラー透明度を使用して、最後に2番目の画像を この新しいPNG-24にコピーすることでした。色の透明度とPNG-24からPNG-8に行くときの問題は、とにかく最初のステップで表示されます。
これは、元のPNG-8を取得することであり、それは寸法です:
$png8 = imagecreatefrompng($imageUrl);
$size = getimagesize($imageUrl);
今私が作成します
imagecolortransparent($png24, $transparentIndex);
:これは、透明な緑の色を作るためである
$png24 = imagecreatetruecolor($size[0], $size[1]);
$transparentIndex = imagecolorallocate($png24, 0x66, 0xff, 0x66);
imagefill($png24, 0, 0, $transparentIndex);
:新しいPNG、それは緑の色(画像中に存在していない)と背景の塗りつぶし
それから私は、PNG-24にPNG8をコピーします。
imagecopy($png24, $png8, 0, 0, 0, 0, $size[0], $size[1]);
ので、ここで問題です:オリジナルのPNG-8がよさそうだが、それは、元の画像の中に形状を囲む緑の枠線を持っています。本当に説明するのは難しいです。緑色の背景の一部が残りのPNGに残っているようです。
私は何ができますか?事前に
おかげ
よろしく、
フェルナンド
私はあなたのコードに続く両方の画像を組み合わせることができました。私が今持っている問題は、それらの画像の1つに影があることです。さて、私はimagecopyまたはimagecopyresampledを使用すると、この影(グレー劣化)が背景に設定された透明な色iと組み合わされているように見えますが、最終的な画像はほぼ完璧ですが、前に設定した背景の透明色、緑。 私はこれを得た後、代わりに透明なPNGを使用しようとしましたが、これらのピクセルは再び問題になります。それは、画像に問題があるように私には聞こえるが、プログラミングには関係しない。 –