• ベストアンサー

透過GIFの判定の仕方ありますか?

現在WEB環境でJAVAを使って、画像のアップロードプログラムを作成しています。 そこで透過GIFの場合はエラーにしたいと考えています。 いろいろ調べてみたいのですが、透過GIFの作り方というサイトしか見つけられず、どうやれば判定できるのか教えてください。 知り合いには普通のGIFと差がないから無理なのでは?と聞いてるので、無理ですという回答でもかまいません。 よろしくお願いします。

  • Java
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

//試しに作ってみました。 //>java TransGIF trans.gif import java.io.*; import java.awt.*; import java.awt.image.*; import javax.imageio.*; public class TransGIF { public static void main(String[] argv){ BufferedImage bi=null; try{ bi=ImageIO.read(new File(argv[0])); } catch(IOException e){ System.out.println(e); } if(bi.getColorModel().hasAlpha()){ System.out.printf("%s は、透過GIFである%n",argv[0]); } else { System.out.printf("%s は、透過GIFでない%n",argv[0]); } } }

nbys_goo
質問者

お礼

ありがとうございます。感謝です。 参考にさせていただき、組み込んでみます。 できないと諦めつつあったのですが、こんなに早く方法がわかるとは思いませんでした。

その他の回答 (3)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

GIFのフォーマットを調べれば可能でしょう。 参考URLに簡単な説明がありますが、この中のTransparent Color Flagを調べれば透過かそうでないかがわかると思います。

参考URL:
http://www.tohoho-web.com/wwwgif.htm
nbys_goo
質問者

お礼

ありがとうございます。 このFLAGがチェックできるものを探します。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

実際にそういうプログラムを作ったことがあるわけでないので方針だけ 参考URLのGIF89aの仕様書 Transparency Flag の部分で、このフラグが立っている(1)なら透過GIFだと言えると思います ただこれだと、一からGIFのフォーマット解析する部分をつくらないといけなくなるから、JAVAの中のどっかを探した方がいいかもしれませんね。

参考URL:
http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/GIF89a.txt
nbys_goo
質問者

お礼

ありがとうございます。 参考URLにTransparency Flagの存在を知りました。 調べてみます。

回答No.1

まず、透過GIFのファイル形式を理解する必要があります。 この点は大丈夫でしょうか。 透過GIFフォーマットのファイルには、 透明化フラグが立っている箇所がありますので、 そこを読みに行って判定するという作業が必要になります。 詳しくは下記URLを参照してください。 GIF89aのすべて http://www.geocities.co.jp/SiliconValley/1361/gifabout.html GIFフォーマットの詳細 http://www.tohoho-web.com/wwwgif.htm GIFについて http://www.st.rim.or.jp/~syamaura/gifanime/gifabout/gifabout.html

nbys_goo
質問者

お礼

すみません。勉強不足でした。 参考になるURLありがとうございます。 勉強します。

関連するQ&A

  • 透過GIFが表示されないんですが・・・

    初めて自分のホームページに透過GIFを使い、いざアップロードしてみたら表示されていませんでした。他の普通の画像は問題なく表示されています。参考になるかと画像のプロパティを見たところ、使用不可とありました。透過GIFには使用できる環境が決まっているのでしょうか? 参考までに、OSはMEを使用、ブラウザはIE5.5です。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • photoshopでの透過GIF

    はじめて質問させていただきます。 透過GIFを作る時どうしても周りにギザギザ が出来てしまい困っています。 普段は過去ログにあるとうり背景色に合わせて 透過しているので見苦しくないのですが...。 問題は 素材屋さんをやろうと思っているのです。 ギザギザある透過GIFだとユーザーさんの好みの 背景色にできないですよね(>_<) できればユーザーさんの好きな背景色が選べる透過GIFを作りたいのですが、無理なんでしょうか? アイコンがきれいに透過されている素材屋さんもたくさんありますよね。 (そんな素材屋さんを作りたいのです) 又、photoshopで無理なようでしたら他にオススメのソフトはないでしょうか?シェアウェアでもOKです。 わがままな質問ですみません。宜しくお願いします。 環境はphotoshop6.0でWIN98です。

  • 透過GIF

    プログラム初心者です 透過GIFをGDでリサイズしたいです やってみたら透明になっているようなんですが、背景との境に輪郭線のような線が出現しました どうやったらきれいに処理できますか? $black = imagecolorallocate($thumb, 0, 0, 0);//透明 $alpha = imagecolortransparent($thumb,$black); // 元画像から透過色を取得する imagefill($thumb, 0, 0, $alpha); // その色でキャンバスを塗りつぶす imagecolortransparent($thumb, $alpha); // 塗りつぶした色を透過色として指定する よろしくお願いします

    • ベストアンサー
    • PHP
  • EXIF情報を持つjpeg画像かどうかの判定方法

    以前、透過GIFの判定方法を質問させていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1816606 同じくEXIF情報を持つ画像もエラーにしたいと考えていますが、Javaで判定可能でしょうか。 Javaはまだ対応できていないのでは?というのが、周りの回答です。 よろしくお願いします。

  • gif透過画像とjpgを加工

    サーバ上に作成済みの透過gifを置いておき、携帯で撮影したjpg画像をweb上で合体させたいのですが、phpで可能でしょうか? 加工後の拡張子はjpgで保存したいです。 よろしく御願いします。

    • 締切済み
    • PHP
  • 透過ソフトでGIFファイルなのに読み込めない

    Giamやかんたん透過くんを使って透過色設定をしようとすると、GIFファイル形式なのに読み込めるものと読み込めないものがあります。 具体的には、読み込めないファイルをかんたん透過くんに読み込もうとすると「{エラー}himawari.hmw(50行目):○○○(ファイル名)が読み込めません」とでます。 読み込めるものとエラーが出るものの違いとは何なのでしょうか。どうすれば読み込めるようになるのか教えてください。ちなみに画像はペイントを使って作っています。

  • JPEG+透過GIF画像の作成方法

    ある画像の上に他の画像を重ねて1枚の画像を作りたいのですが、何か方法があれば教えて下さい。 具体的には、JPEG形式の画像の上に透過GIFの画像を重ねて新しい画像を作りたいのです。透過GIF形式の画像はIrfan Viewというフリーソフトを使用して作りました。(私が使っているソフトでは、Irfan ViewしかGIFに対応していませんでした) このソフトはまだ使い始めたばかりで多くの機能を使いこなした訳ではありませんが、わかる範囲でいろいろ試してみましたが出来ませんでした。 Irfan Viewというソフトで作成可能ならばその方法、無理な場合は他のフリーソフトで作成可能な物があれば教えていただきたいです。 よろしくお願いします。

  • Photoshop7.0での透過GIF保存

    いくつかネット上で調べても駄目なので改めて教えていただきたくて投稿します。 ネット上のゲームに使う画像ということで、依頼されてGIFの画像を作りました。 背景透過にして欲しいと頼まれました。 もともとはPhotoshop7.0を使って彩色し、 背景部分はなしで製作していました。 見えやすいように、レイヤーで白い背景はおいていましたが、 直前に捨てました。(ブルーのチェックが見えている状態) その後、Web用に保存→GIF形式を選択→透明のチェックボックスにチェック というように保存しました。 自分でPhotoshopで見る限りは透明に見えているので (Web用に保存のプレビューでもそう見えます。) てっきりできていると思い、 依頼主に送ったところ 背景が透過できていない、と言われました。 確かに試しにIrfanViewを使ってみたところ 確かに背景が白いまま残って見えます。 これはなぜなのでしょうか? ちなみに、ネット上で 「Photoshopで透過GIFを…」という項目で 検索をかけたところ、インデックスカラーに変更した後、書き出し→GIF98aを選んで保存、と書いてありましたが 私のPhotoshopでは、書き出しのところには Illustrator用の書き出ししか選択できません。 一般的にネットゲームなどで使用する画像の背景透過と Photoshopの背景透過は意味が違うのですか? それとも背景透過のやり方が違っていますか? 教えてください。

  • Javaでアップロードされた画像の種類を判定するには?

    JavaServletで、ファイルをアップロードする仕組みをつくっています。 アップロードするファイルは、画像(JPG,GIF,BMP)を想定しています。 ここで、アップロードされたファイルが上記画像でない場合、エラーに したのですが、Javaで、アップロードされたファイルの画像の種類を 特定することは加納でしょうか? 単純に、拡張子で判定するだけではなく、バイナリレベルでの確認を 行いたいと考えています。

    • ベストアンサー
    • Java
  • ImageMagickで透過GIFアニメが変です

    PHPでGIFアニメを作成しています。 PHP(元GIF作成)=>ImageMagick(GIFアニメに変換)という流れです。 背景を透過にして動きがあるものを作ってみると、以前のフレームの画像が 全て残ったようなアニメになってしまいます。まるで透明な紙に書いた パラパラマンガというような感じです。 原因追求の為、作成したGIFアニメをフレーム毎に分解してみると、 後に表示されるフレームには、それまでに表示されていたフレームの 画像が全て書き込まれていました。 また元画の背景透過を止めると、正しいアニメになり、作成したGIFアニメ の各フレームも正しい画像になっています。 背景を透過で作成したいのですが、どなたか解決策を教えて下さい。 ちなみに exec("/usr/local/bin/convert -dispose none -delay 20 image*.gif -loop 0 $path/animatedimage.gif", $err); という感じでアニメ化しています。

専門家に質問してみよう