2016-10-04 4 views
0

Я создаю простой конвертер изображений YUV в JPEG. Для этого мне нужно получить размер изображения YUV из файла. Мне сложно провести тестирование. но мне нужно получить эти данные грамматически. Любая помощь будет оценена.Как получить ширину и высоту из файла изображения YUV в Android?

private void covertToYuvImage() { 

    ByteArrayOutputStream baoStream = new ByteArrayOutputStream(); 
    String yuvImagePath = selectedFolder+yuvImageList.get(0); //Path to YUV image 
    File file = new File(yuvImagePath); 
    byte[] bFile = new byte[(int) file.length()]; 
    try{ 
     FileInputStream fileInputStream = new FileInputStream(file); 
     fileInputStream.read(bFile); 
     fileInputStream.close(); 
    } 
    catch (Exception e){ 
     e.printStackTrace(); 
    } 

    YuvImage yuvImage = new YuvImage(bFile, ImageFormat.NV21,2048,1536,null); 
    yuvImage.compressToJpeg(new Rect(0, 0, 2048, 1536), 100, baoStream); 

    File imgFile = new File(selectedFolder, "NewImage.jpeg"); 
    if (!imgFile.exists()) { 

     FileOutputStream img; 
     try { 
      img = new FileOutputStream(imgFile); 
      img.write(baoStream.toByteArray()); 
      img.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Но выход был ужасным. См. Прикрепленное изображение. enter image description here

Как я могу решить эту проблему?

+0

I гавань»пробовал, но, кажется, этот ответ поможет вам, если вы выполняете операцию на Bitmap вместо того, чтобы выбрать изображение из файла. http://stackoverflow.com/questions/5960247/convert-bitmap-array-to-yuv-ycbcr-nv21 – VVB

ответ

0
YuvImage yuvImage = new YuvImage(bFile, ImageFormat.NV21,2048,1536,null); 
yuvImage.compressToJpeg(new Rect(0, 0, 2048, 1536), 100, baoStream); 
yuvImage.getWidth() // it will return width in int 
yuvImagegetHeight() // It will return height in int 

Try this link надеюсь, что это поможет вам

+0

Это вернет 2048 и 1536 .. но я хочу знать, можно ли получить эти значения из изображения YUV файл, который может быть использован в конструкторе YuvImage – WEAPI

+0

У вас есть представление об изображении вывода – WEAPI

+0

надеюсь, эта ссылка поможет вам http://stackoverflow.com/questions/9192982/displaying-yuv-image-in-android – Moorthy