3
BufferedImage
(URLから読み取ったもの)がGIF
の画像であるかどうかを確認できますか?ファイルの拡張子.gifではなくMIMEの種類を確認したいBufferedImageがGIFの場合のJavaチェック
おかげ
BufferedImage
(URLから読み取ったもの)がGIF
の画像であるかどうかを確認できますか?ファイルの拡張子.gifではなくMIMEの種類を確認したいBufferedImageがGIFの場合のJavaチェック
おかげ
は、URLからの非常に最初のバイトを読んで、それはGIFイメージだ場合、それは「魔法の言葉」で開始する必要があります:のフォーマットが何であるかGIF89a
次のコードを教えてくれます画像ストリーム
public static String read(InputStream input) throws IOException {
ImageInputStream stream = ImageIO.createImageInputStream(input);
Iterator iter = ImageIO.getImageReaders(stream);
if (!iter.hasNext()) {
return null;
}
ImageReader reader = (ImageReader) iter.next();
ImageReadParam param = reader.getDefaultReadParam();
reader.setInput(stream, true, true);
BufferedImage bi;
try {
bi = reader.read(0, param);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
reader.dispose();
try {
stream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return reader.getFormatName();
}
public static void main(String[] args) throws MalformedURLException, IOException {
URL url = new URL("http://p1.pstatp.com/large/efa0004d2238045fb9f");
URLConnection connection = url.openConnection();
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
InputStream in = null;
try {
in = connection.getInputStream();
String format = read(in);
System.out.print(format);
} catch (Exception e) {
}
}
が出力される。
GIF
古いバージョンには 'GIF87a'があります。正しくリコールすれば –