2010-11-19 16 views

Antwort

4

lesen Sie die ersten Bytes aus der URL, wenn es sich um ein GIF-Bild ist, ist es mit dem ‚Zauberwort‘ beginnen sollte: GIF89a

+0

Die ältere Version hat 'GIF87a', wenn ich mich richtig erinnere –

3

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