2015-06-02 2 views
3

я могу проверить, если байтовый массив метафайл изображения как WMF, EMF, используя ниже код JavaКак проверить, если байтовый массив .emf или .wmf формат

private boolean isMetaFileFormat(byte[] pictureData) 
{ 
    BufferedImage image = null; 
    try 
    { 
     image = ImageIO.read(new ByteArrayInputStream(pictureData)); 
     if(image != null) 
      return false;   
    } 
    catch (Exception e){ } 
    return true; 
} 

, но как конкретно проверить, если это э.д.с. или wmf изображение?

Заранее спасибо ...

ответ

1

Использование Java Mime Magic Library для легкого и распространенным способом. магическое число Download

MagicMatch match = Magic.getMagicMatch(your_byte_array); 
String mimeType = match.getMimeType(); 

if(mimeType.equals("image/x-emf")) { 
    //here is emf 
} 
if(mimeType.equals("image/x-wmf")) { 
    //here is wmf 
} 
+0

отблагодарить и будет стараться :) –

2

WMF файла является 0x9AC6CDD7, EMF магического число 0x01000000.

+0

спасибо вам полезный :-) –

1

Вы можете получить тип изображения из массива байт

byte[] pictureData = null; 
    ImageInputStream stream; 
    try { 
     stream = ImageIO.createImageInputStream(new ByteArrayInputStream(
       pictureData)); 
     Iterator<ImageReader> readers = ImageIO.getImageReaders(stream); 
     while (readers.hasNext()) { 
      ImageReader read = readers.next(); 
      read.getFormatName(); 
     } 
    } catch (Exception e) { 
    } 
+0

Я попытался ур код, но объект ImageReader не имеет значения для байтового массива встроенного уравнения в текстовом документе :( –

+0

http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageReader.html#getFormatName() – mstfdz

Смежные вопросы