是否可以将位图切成小块而不将整个内容加载到内存中?
image-processing
4
0

我正在开发一个适用于Android的图像处理应用程序,该应用程序可以从拍摄的乐谱中识别出音乐符号。

我试图使用BitmapFactory.decodeFile(imgPath)方法将整个图像加载到Bitmap中,但是由于手机的内存不足,因此出现“ VM堆大小”错误。要解决此问题,我想将整个图像切成小块,但是我不确定该怎么做。

我还看到可以通过使用BitmapFactory.Option类的inSampleSize属性来减小Bitmap的内存大小,但是如果这样做,我将无法获得音乐符号识别过程所需的高分辨率图像。

无论如何,是否有需要处理而无需使用NDK?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

Android 2.3.3具有一个名为android.graphics.BitmapRegionDecoder的新API,可让您完全执行所需的操作。

例如,您将执行以下操作:

BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(myStream, false);
Bitmap region = decoder.decodeRegion(new Rect(10, 10, 50, 50), null);

简单 :)

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号