web-dev-qa-db-ja.com

PHPを使用して透明PNGを画像とマージする方法は?

状況はこれです:私は小さな50x50の写真を持っています。 50x50の写真のフレームを含む小さな50x50の透明な写真もあるので、基本的には画像の透明なpng を配置し、これら2つをマージして最終的な3番目の写真にします。これは次のようになります: http://img245.imageshack.us/i/50x50n.png

注:HTMLのみを使用してこれを実行したくありません(元の画像の上に透明なpngを配置するjavascriptプラグインを作成することでこれを実現しました)。

ありがとう。

20
subZero

PHP Gd2ライブラリを使用して、2つの画像をマージできます。

例:

<?php
 # If you don't know the type of image you are using as your originals.
 $image = imagecreatefromstring(file_get_contents($your_original_image));
 $frame = imagecreatefromstring(file_get_contents($your_frame_image));

 # If you know your originals are of type PNG.
 $image = imagecreatefrompng($your_original_image);
 $frame = imagecreatefrompng($your_frame_image);

 imagecopymerge($image, $frame, 0, 0, 0, 0, 50, 50, 100);

 # Save the image to a file
 imagepng($image, '/path/to/save/image.png');

 # Output straight to the browser.
 imagepng($image);
?>
29
zanbaldwin

画像上でPNGフレームの透明度を維持したい場合は、imagealphablending($frame,true);の前にimagecopymerge()を追加します。

8
Raf

ImageMagick :: Composite を使用して実行できます。最初にユーザーが投稿したメモは、概念を理解するのに十分なはずです。

4
Alex Gyoshev