在我的android项目中,我需要访问JPEG图像的每个单独像素。由内置照片应用程序创建的图像。我尝试将JPEG转换为Bitmap
类实例,但抛出了OutOfMemoryException
。在搜索有关此问题的信息后,我找到了以下解决方案:调整图像大小!但是图像质量在我的项目中很重要,我无法调整它的大小。有没有办法让每个像素访问?
答案 0 :(得分:1)
如果您的图像太大且质量很重要,我认为最好的方法是使用或创建自己的类来剪切区域中的图像(例如:50 * 50像素),有几个jpeg信息类在互联网,以帮助您了解如何工作jpeg文件。
你试过BufferedImage吗? (它不在sdk中,但也许可用)
答案 1 :(得分:0)
jpeg的本质使得很难获得单个像素的值。主要原因是数据不是字节对齐的,另一个原因是所有内容都是以大小为8x16,16x8和8x8的块进行编码。此外,您需要处理色度值的子采样。
如果图像包含重新开始标记,您可以跳过图像,这样您就不必在获取像素值之前解码整个图像。