• ベストアンサー

PHP4 透過画像を合成する方法を教えてください。

php4で、画像処理についてです。 画像Aと背景画像Bの二つがあり、 背景画像Bの上に画像Aをのせ、 新しい画像として出力する。 ※画像A、Bはpngファイルです。 (gifで合成すると画像のふちが粗くなるのでpngでやりたい) imagecopymergeで、合成まではできたのですが、 画像Aのpngの透過がうまくいきません。 photoshopなどで画像を書き出すときは透過されているのですが、 合成すると、透過されていない状態になってしまいます。 imagesavealphaとかが関係あるのでしょうか? 何卒よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

合成の前に、画像Aのリソースからimagecolortransparentで色抜き処理をしていますか?

参考URL:
http://jp2.php.net/manual/ja/function.imagecolortransparent.php
ewteletele
質問者

お礼

遅くなってしまいすみません。 上記の方法を試してみました。 やはり、透明色をしていできないので、画像Aの背景色を白にして、 imagecolortransparentで色抜き処理をしてみました。 結果として、GIFと同じ透過の処理になりました。 (画像の縁にジャギがでてしまう) pngの透過はできないのでしょうか・・・ アドバイスありがとうございました。 もう少し他にないかまってみようと思います。

ewteletele
質問者

補足

ご回答ありがとうございます。 試してみようと思うのですが、 すでにpngファイルで、色抜きしたい部分を透過で書き出しているのですが、 透明の部分の色をどうしてしたらいいのか分かりません。 逆に白(または黒)バックにして、色指定して抜かないといけないのでしょうか。 まだ試していないのですが、その場合GIFみたいが、縁にジャギができないかが気になります。 試してみてからまた書き込みさせていただきます。

関連するQ&A

  • PHP5で画像の合成(アルファブレンディング)

    はじめまして。 よろしくお願い致します。 PHP5でA画像の上にB画像を合成する際に B画像の透過度を設定してアルファブレンディングしたいと思っています。  ※ 透過GIF/pngのような部分的な透過ではなく、    B画像全体を透明度x%を設定してA画像に重ねる 条件としては、  ・ A、B画像ともにjpegファイル  ・ 可能であればGDライブラリで可能な方法    ※ 無ければ別のイメージライブラリでも結構です。 以上 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 透過して画像を背景に貼り付ける方法

    背景に写真を切り抜いた画像を貼り付けてHPにUPしたいと思っていますが、自分で色々やってみましたが出来ません。 jpgの背景画像にjpgの写真(綺麗に形を切り抜いた物)を合成はできるのですが、 切り抜いた画像の周りを透過させて、別の背景に貼り付けて、合成したいのです。 透過させると、gifかpngで保存ですよね。でその画像を背景と合成させるのができません。背景にそれを貼り付け、コピーなどすると、透過できなくて、画像の周りに四角く枠ができます。画像編集ソフトで、gifが読み込めません。でpngに変更して、保存すると透過出来なくて! 困っています。最初から素材でpng透過してある物も、出来ません。ソフトはwinxpに標準でついているもの(フォトレタッチとビルダーv6.5ライト)意外はIrfan とPict Bear(ペイントソフト)のようなものしかありません。 あまり、画像処理ソフトの使い方が分からずにいます 上記のフリーソフトも使いこなせずにいる、初心者です。 良い方法があったら教えてください 市販のソフトでないと、このような事は出来ないのですか。 どうぞ宜しくお願いいたします 説明が分かりづらくてすいません

  • 画像を透過後、合成したら汚い

    年賀状を作成していて子供や愛犬の形にそって切り取りをしたんです。 それをjtrimというフリーソフトで透過してpngで保存されています。 背景画像と切り取った画像を合成したのですがその透過後、画像の周りの部分が汚くなっちゃうんです。 なので合成すると変。。あきらかに合成しましたって後がある感じです。 なんと書いたら良いのか。。表現したら良いのかわからないんですが、 切り取りと透過のソフトはフリーソフトをダウンロードして使いました。 これで分かる方が居ましたらアドバイスお願いします。

  • 画像透過について

    透過した写真の画像をpngファイルで保存したのですが、ウェブにアップするとグレーっぽい色の背景がついてしまいます。gifファイルで保存する以外はウェブでは背景がついてしまうのでしょうか?

  • 画像の合成で透過の部分が白になる

    JTrimで画像の合成をするため、貼り付けたい画像の周辺を白く塗りつぶし、スポイドで透過(透過部分がチェック模様になる)、それをGIFで保存。 背景画像を開き、前述の画像を合成で貼り付けると、透過したはずの部分が白くなって、透過しません。 この部分を透過するには、どうしたらよいでしょうか。 ソフト:JTrim OS:Windows XP & Vista

  • PHPで行う最速の画像合成を教えて下さい。

    PHPを使用して、画質をあまり落とさず、1秒以下の処理時間で23個の画像を合成する方法(ロジック)を教えて下さい。 画像の合成をPHPで下記のソースのように組みましたが、横1120×縦2016のPNGファイル(容量は1ファイル当たり約 6.6KB~140KB)を23個合成して一つのファイルにする処理が終了すると、結果として合成された画質はキレイ(10段階中10の画質)ですが、処理時間が5.5秒程かかります。 そこで、合成素材の23個のファイルを全て半分の大きさ横560×縦1008にすると、結果として合成された画像の画質は結構落ちました(10段階中6の画質)が、処理時間は2.5秒程で終わりました。 希望としては、画質をあまり落としたくないので、小さくても横560×縦1008の画像を23個合成して処理時間を1秒以下にしたいのですが、以下のソースのやり方よりも処理が早く終わる やり方をご存知の方はいませんか? ご存知の方は、ご教授願います。 ちなみに、画像の種類は、使用できる色の種類が多いPNG形式で1秒以下の処理時間を実現したいです。 宜しくお願い致しますm(__)m ■環境 windows vista xampp/apache 2.2.4 PHP Version 5.2.3 //23個のファイルをロード $img1 = imagecreatefrompng(一個目のファイル); $img2 = imagecreatefrompng(二個目のファイル); ~ $img23 = imagecreatefrompng(23個目のファイル); //(白)の色を作成 $white1 = imagecolorallocate($img1, 255, 255, 255); $white2 = imagecolorallocate($img2, 255, 255, 255); ~ $white23 = imagecolorallocate($img23, 255, 255, 255); //白色を透過色へ imagecolortransparent($img1, $white1); imagecolortransparent($img2, $white2); ~ imagecolortransparent($img23, $white23); //それらをひとつの画像に統合($img1を背景とすると。) imagecopymerge($img1, $img2, 0, 0, 0, 0, 1120, 2016, 100); imagecopymerge($img1, $img3, 0, 0, 0, 0, 1120, 2016, 100); ~ imagecopymerge($img1, $img23, 0, 0, 0, 0, 1120, 2016, 100); //マージした後いらなくなった画像リソースをとりあえず解放 imagedestroy($img2); ~ imagedestroy($img23); imagepng($img1,出力ファイル名); imagedestroy($img1);

    • ベストアンサー
    • PHP
  • 写真とgif画像の合成について

    ブログに写真を載せるのに、写真に透過処理したスタンプ様画像を付けてアップしたいのです。 画像に関するソフトはペイント・Photo Editor・JTrimがあります。 スタンプ画像はgifファイルで、photo editorやJTrimでその画像単独で見ると背景が格子状になっており、これは透過処理がなされているということですよね? ですが、そのスタンプ画像を写真のjpegファイルに合成しようとコピー、ペーストしたところ、透過しているべき部分がグレーになって、見た目はただ写真の上に四角いイラストを貼り付けたような状態になってしまいました。 調べてみると単にコピペでは、透過されないらしいとわかってきました。 過去ログの http://oshiete1.goo.ne.jp/qa1603803.html こちらの質問はまさに私の希望なのですが、回答の通りJTrimというソフトをダウンロードして挑戦しましたが、できませんでした。 jpegをpngまたはgifに、というのはPhoto Editorで開いたjpeg画像を保存形式を変えて保存すればOKですよね? 複数色の透過処理、とはどういうことでしょうか? やはり、上記3つのソフトだけでは無理でしょうか。 写真中心のブログにしたいので、合成さえできれば、それ以上の機能は求めません。 よろしくお願いいたします。

  • PictBearの透過と合成について

    PictBearで、透過した画像を合成しようと思ったのですが、 合成しても、背景が黒になり透過したまま合成ができません。 合成せずに、透過した画像だけで開くと背景はブロックッチェック?に なっており背景は透過されているのだとおもいますが、 合成すると、背景が黒になってしまいます。 背景が透過されたまま、どうやって合成できるのでしょうか?

  • png画像をphotoshop5.0で透過する方法!

    png形式で作成した画像を、photoshop5.0で透過するにはどうしたらいいのでしょうか?? 検索してみても、gif透過の仕方しか出ていないので、イマイチわからないんです・・・。 どなたか詳しい方教えて下さい! 宜しくお願いします。

  • 画像を透過させたい

    GIFやJPGにしたときに、 対象物の周りを透過させたいのですが、 現状できていません。 そのため、対象物以外の背景部分が whiteになって、 ページ背景色にういた画像貼り付けになってます。 どうしたら透過させることができるんでしょうか? photoshopやoffice系で使えるものがあれば 教えてください。