• 締切済み

gdを用いた画像生成

・php4.3.11 ・gd2.0.33 上記の環境で作成しているのですが、画像の透過処理にて行き詰っていまして、imagecreatefromgifで読み込んだ 不透過gifの一部の色を透過色にしたいのですが、なにかよい方法はありますでしょうか。 ご教授よろしくお願いします。

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

みんなの回答

  • Rasyuki
  • ベストアンサー率57% (19/33)
回答No.1

そのような関数がありますよー。

makeworld
質問者

補足

その関数はimagecolortransparentでしょうか? imagecolortransparentだと、gdで作成した画像に関しては透過処理が行えたのですが、読み込んだ画像だと うまく出来なくて何かやり方が悪いのでしょうか。

関連するQ&A

  • GD+imagemagic

    ・php5.2.2 ・gd-2.0.33 ・ImageMagick-6.2.5 上記の環境で作成しているのですが、まずgdの関数imagerotateを使って透過gifを回転させると、 透過部分が黒くなってしまうのですが、これを回避する事は出来るのでしょうか? 例 $img = imagecreatefromgif($img_file); $rotate = imagerotate($img, 90, 0, 0); header('Content-Type: image/gif'); imagegif($rotate); 次に同じ様な問題で、imagemagicのアニメーション機能を使用した場合にも、透過部分が黒くなってしまいます。 例 /usr/local/bin/convert -delay 100 -loop 1 -dispose previous $img_file[1-3].gif anime.gif おわかりになる方が居ましたら、ご指導の程よろしくお願いします。

    • ベストアンサー
    • PHP
  • 画像処理GD×

    はじめまして。 下記は入力された1つの画像を指定したサイズで一部をコピーし 分割しpng形式にしていくプログラムです。 GDを使って処理していたのですが… GD,imagemagick等は使わないで処理する条件にすることになってしまいました。 ↓↓処理 入力された画像のsizeを調べる---getimagesize getimagesizeで画像の種類を判断し if(gifだったら) { $imgOrg = imagecreatefromgif(入力された画像) } if(jpeg,pngだったら…) {…} $max横=画像size[0] / 256; $max縦=画像size[1] / 256; for($i<MAX横になるまで) { for($x<MAX縦になるまで) { $img = imagecreate(256,256); imagecopy($img, $imgOrg , 0 , 0 ,$i * 256, $x * 256, 256, 256); } $name = $i.$x."xxx.png"; imagepng($img, $name); //main処理 } こんな感じなのですが、これをGDを使わないでやると… imagecreatefrom[gif,jpeg,png] imagecopy imagepng を使う処理ができなくなり、 変わりの処理を1日調べたのですが GD等を使った例しかサイトに載ってなくて行き詰っています。 GDを使わずに変わりの処理でできるのか、それともできないのか 初心者なのでおかしいとこがあるかもしれませんがよろしくお願いします。

    • 締切済み
    • PHP
  • PHPでGD(画像処理)を使うには、どうしたら良いんでしょうか?

    すいません、現在私は、PHP4.3.10を利用しているんですが、 この環境でGD(画像処理)を使いたいんですが、GDを使うにはどうしたら良いんでしょうか?

    • ベストアンサー
    • PHP
  • GDでのgifアニメ

    gdでgifを出力したいのですが、 gifアニメはそもそも無理なのでしょうか? 例えば下記のようなソースで xxxx.gifがアニメでも、最初のフレームの 画像のみ出ます。 header ("Content-type: image/gif"); $im = imagecreatefromgif("xxxx.gif"); ImageGif($im); どなたかお教えいただけると嬉しいです。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • GIFを出せるGDありませんか?

    linux7.0をつかってます。PNGだけじゃなくてGIFの画像も作成できるGDはありませんか?著作権がどうとかで最近のGDはPNGしか出せないようになったらしいのですが、どうしてもGIFを出したいです。 お願いします。

  • phpのGDで画像の特定色だけを他の色に塗りつぶし

    一応環境です centos5.5 apache 2.2.3 php 5.3.3 phpのGDで画像の特定色だけを他の色に塗りつぶすことはできるでしょうか? 例えば、白(R:255 G:255 B:255)の部分だけをすべて他の色に変更する。といったことがしたいのですが、GDでは難しいでしょうか?

    • ベストアンサー
    • PHP
  • 画像イメージの背景を透過にすることができません。

    GDライブラリを使用して、PHPでグラフ画像を生成させたいのですが、 環境によって、透過の関数がうまく動作しません。 $color = imagecolorclosest(元の画像, 255, 255, 255); ImageColorTransparent(元の画像, $color); <OKな環境> ・Linux ・PHP4.2.2 <NGな環境> ・solaris ・PHP4.2.4-dev どなたかご教授ください、よろしくお願いします。

    • 締切済み
    • PHP
  • PHP GD 画像が縮小できない

    宜しくお願いします。 ※ローカル環境です。 (WinXP PHP5 Smarty PEAR MySQL ※GDはインストされています。) 下記のコードで、サーバーにもともと上げてある画像(jpeg)を縮小して、 それをブラウザに表示させようと思います。 ですが、縮小されずに、元の画像サイズのまま表示されてしまいます。 おかしな点をご指摘下さいませ。 また、(1)で、 jpegファイルを取り込むコードがありますが、これは、 もし画像がGIFであったりPNGの場合を顧慮するなら、 取り込む際にそれぞれを判定するのが基本でしょうか? もし、今回のようにサバー元の画像をリサイズするのであれば、拡張子もわかっていますので、 jpegファイルだけのことを考えればいいですが、 たとえば、任意のアップロードされたファイルを扱う場合は、上記3種類を判定すして処理すべきですよね? 以上、2点を回答下さいませ。 // -- (1) // 画像を読み込む。 $file_path = "http://www元画像.com/img/aa.jpg"; $image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む /*********** $image = ImageCreateFromGIF($file_path); //GIFファイルを読み込む $image = ImageCreateFromPNG($file_path); //PNGファイルを読み込む ************/ // -- (2) // 画像のサイズを取得。 $width = ImageSX($image); //横幅(ピクセル) $height = ImageSY($image); //縦幅(ピクセル) // -- (3) // 縮小した画像のサイズを決める。 $new_width = 100; $rate = $new_width/$width; //圧縮比 $new_height = $rate*$height; // -- (4) // 空の画像を作成する。 $new_image = ImageCreateTrueColor($new_width, $new_height); // -- (5) // サンプリングしなおす  ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height); // -- (6) // ブラウザに出力する場合。 ImageJPEG($image); //ImageJPEG($image,'simpletext.jpg'); //ImageGIF($image); //環境によっては使えない //ImagePNG($image); // -- (7) // メモリを解放する。 imagedestroy ($new_image); imagedestroy ($image);

    • ベストアンサー
    • PHP
  • GDによるグラデーション

    GDによるグラデーション画像の作成方法が分からず、悩んでおります。 一応、基本は2色のグラデーションを考えています。 imagefilledpolygonで塗りつぶしたあと、for関数+imagecoloratを使用してセル単位で配色を行う方法がある、と検索したらあったのですが、具体的なコードがなかったので理解できずにいます。 出来れば、上記のグラデーションを実現できる一連の流れを教えていただけませんでしょうか。 また、ご存知ならGDについて詳しく書かれたPHPの本をご存知でしたら教えていただきたいと思っています。 お願いします。

    • ベストアンサー
    • PHP
  • Photoshopでの透過画像を使って他ソフトでの文章作成

    Photoshopで透過処理した画像(GIF)を作りました。 その画像を使って、Visioやワードで作成したいのです。 しかし、背景の色を変えてもその画像の周りは白いままなのですがどうしたらいいでしょうか。 よろしくお願いします。

専門家に質問してみよう