- ベストアンサー
透過GIFの判定の仕方ありますか?
現在WEB環境でJAVAを使って、画像のアップロードプログラムを作成しています。 そこで透過GIFの場合はエラーにしたいと考えています。 いろいろ調べてみたいのですが、透過GIFの作り方というサイトしか見つけられず、どうやれば判定できるのか教えてください。 知り合いには普通のGIFと差がないから無理なのでは?と聞いてるので、無理ですという回答でもかまいません。 よろしくお願いします。
- みんなの回答 (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]); } } }
その他の回答 (3)
- Bonjin
- ベストアンサー率43% (418/971)
GIFのフォーマットを調べれば可能でしょう。 参考URLに簡単な説明がありますが、この中のTransparent Color Flagを調べれば透過かそうでないかがわかると思います。
お礼
ありがとうございます。 このFLAGがチェックできるものを探します。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
実際にそういうプログラムを作ったことがあるわけでないので方針だけ 参考URLのGIF89aの仕様書 Transparency Flag の部分で、このフラグが立っている(1)なら透過GIFだと言えると思います ただこれだと、一からGIFのフォーマット解析する部分をつくらないといけなくなるから、JAVAの中のどっかを探した方がいいかもしれませんね。
お礼
ありがとうございます。 参考URLにTransparency Flagの存在を知りました。 調べてみます。
- oshietechodai
- ベストアンサー率35% (105/298)
まず、透過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
お礼
すみません。勉強不足でした。 参考になるURLありがとうございます。 勉強します。
お礼
ありがとうございます。感謝です。 参考にさせていただき、組み込んでみます。 できないと諦めつつあったのですが、こんなに早く方法がわかるとは思いませんでした。