【问题标题】:What format byte array stores data from PNG file?什么格式的字节数组存储来自 PNG 文件的数据?
【发布时间】:2014-08-04 20:21:15
【问题描述】:

我想要这样得到的字节数组中的像素值:

File file = new File(pngfilepathfromSDCARD);
byte[] array = new byte[file.length()]; 

BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
buf.read(array,0,array.length);
buf.close();

原始 png 文件大小为 320*240 = 76800 像素,而数组长度为 14792。 我无法理解数组编码的格式,我想使用该数组中的 RGB 值进行进一步处理。

【问题讨论】:

    标签: android image android-ndk


    【解决方案1】:

    PNG 文件位于PNG format

    听起来您想将文件解压缩为 RGB 位图。您可以使用BitmapFactory#decodeFile() 来执行此操作。

    【讨论】:

    • 通过上述方法压缩了一些数据,所以我没有得到正确的结果。实际上我想要存储像素/字节的字节数组。
    • 您正在读取的文件是压缩数据。 decodeFile() 方法会将其解压缩为位图,您可以从中获取像素数据(例如,getPixels())。
    【解决方案2】:

    是的,我得到了解决方案,我使用 OpenCV Mat 类读取了图像。 然后将其转换为字节数组。通过这个我得到每个像素的 16 位值,我在 jni 中进一步处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-23
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      相关资源
      最近更新 更多