Ist es möglich zu bestimmen, ob ein BufferedImage
(gelesen von einer URL) ein GIF
Image ist? Ich möchte den MIME-Typ überprüfen, nicht die Dateiendung .gif.Java prüfen, ob BufferedImage ein GIF ist
Dank
Ist es möglich zu bestimmen, ob ein BufferedImage
(gelesen von einer URL) ein GIF
Image ist? Ich möchte den MIME-Typ überprüfen, nicht die Dateiendung .gif.Java prüfen, ob BufferedImage ein GIF ist
Dank
lesen Sie die ersten Bytes aus der URL, wenn es sich um ein GIF-Bild ist, ist es mit dem ‚Zauberwort‘ beginnen sollte: GIF89a
Die folgenden Codes wird zeigen, was das Format der ist Bildstrom
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) {
}
}
Der Ausgang ist:
gif
Die ältere Version hat 'GIF87a', wenn ich mich richtig erinnere –