[PHP-users 28597] (無題)
1000@e-liveshot.com
1000 @ e-liveshot.com
2006年 3月 1日 (水) 18:19:00 JST
初めて質問します。VINAKAと申します。
レベルはど素人です。。。
現在画像の処理について勉強をしていまして、どうにもこうにも、うまいこといかな
くて困っています。
処理内容
1.jpg(背景画像)と2.jpg(物体の画像)が存在する。これを重ね合わせる。
重ね合わせて表示させる(本当は保存したい)。
※画像サイズは両方とも同じ大きさ96*96
試行1
2.jpgの背景を透明化するために2.jpgから背景色を抽出して、透明化を試みた。
次にimagecopymergeを使い、1.jpgに重ねた。
※なぜ別ファイルを作成しなかったと言うと、作成できなかった。
imagejpegで存在しないファイルを作成しようと試みたが結果は
Warning imagejpeg():Unable to open '5.jpg' for writing in
とでてしまった。
結果
画像は重なるが色が薄くなってしまう。
スクリプト
<?php
$img = "1.jpg";
$img2="2.jpg";
$src_im = imagecreatefromjpeg("$img");
$dst_im = imagecreatefromjpeg("$img2");
$cid = imagecolorat($dst_im,50,50);
imagecolortransparent($dst_im,$cid);
imagejpeg($dst_im,"2.jpg");
$src_im2 = imagecreatefromjpeg("1.jpg");
$dst_im2 = imagecreatefromjpeg("2.jpg");
imagecopymerge($dst_im2,$src_im2,0,0,0,0,96,96,50);
imagejpeg($dst_im2,"1.jpg");
?>
試行2
試行1と同じように、背景色を透明化して、
imagecopyで重ねてみた。
結果
重ならず、1.pngが2.pngの画像に変わってしまった。
スクリプト
<?php
$src_im = imagecreatefrompng("1.png");
$dst_im = imagecreatefrompng("2.png");
imagecolortransparent($dst_im);
imagepng($dst_im,"2.png");
$src_im2 = imagecreatefrompng("1.png");
$dst_im2 = imagecreatefrompng("2.png");
imagecopy($dst_im2,$src_im2,0,0,0,0,96,96);
imagepng($dst_im2,"1.png");
print "<img src=\"1.png\">";
?>
ど素人で申し訳ございません。
どうしても、出来なくて、書籍も関数リファレンスなども見ましたが、できません。
どなたかお助けいただけないでしょうか???
ほんとうに、本当によろしくお願いします。
PHP-users メーリングリストの案内