プロが教えるわが家の防犯対策術!

現在WEB環境でJAVAを使って、画像のアップロードプログラムを作成しています。

そこで透過GIFの場合はエラーにしたいと考えています。
いろいろ調べてみたいのですが、透過GIFの作り方というサイトしか見つけられず、どうやれば判定できるのか教えてください。

知り合いには普通のGIFと差がないから無理なのでは?と聞いてるので、無理ですという回答でもかまいません。

よろしくお願いします。

A 回答 (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]);
}
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます。感謝です。

参考にさせていただき、組み込んでみます。

できないと諦めつつあったのですが、こんなに早く方法がわかるとは思いませんでした。

お礼日時:2005/12/05 10:38

GIFのフォーマットを調べれば可能でしょう。


参考URLに簡単な説明がありますが、この中のTransparent Color Flagを調べれば透過かそうでないかがわかると思います。

参考URL:http://www.tohoho-web.com/wwwgif.htm
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/05 10:37

実際にそういうプログラムを作ったことがあるわけでないので方針だけ


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

参考URL:http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/GIF89a.txt
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/05 10:36

まず、透過GIFのファイル形式を理解する必要があります。


この点は大丈夫でしょうか。

透過GIFフォーマットのファイルには、
透明化フラグが立っている箇所がありますので、
そこを読みに行って判定するという作業が必要になります。

詳しくは下記URLを参照してください。

GIF89aのすべて
http://www.geocities.co.jp/SiliconValley/1361/gi …


GIFフォーマットの詳細
http://www.tohoho-web.com/wwwgif.htm


GIFについて
http://www.st.rim.or.jp/~syamaura/gifanime/gifab …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/05 10:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!