首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android高分辨率图像处理

Android高分辨率图像处理
EN

Stack Overflow用户
提问于 2011-12-29 01:19:55
回答 3查看 3K关注 0票数 6

从实验和阅读其他帖子like this one来看,似乎很难在安卓上处理高分辨率图像,因为虚拟机允许分配的内存是有限制的。

加载一个8MP的相机图片需要大约20MB的内存。

我理解简单的解决方案是在加载图像时对图像进行下采样(BitmapFactory提供了这样一个选项),但我仍然希望以全分辨率处理图像:相机拍摄8MP,为什么我只使用4MP并降低质量。

有没有人知道解决这个问题的好办法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-29 02:23:23

2件事:

  1. 在Honeycomb查看画廊。它执行这种基于平铺的渲染。你可以放大一张图片,然后你会看到当前的部分比其他部分的分辨率更高。如果您使用原生代码(NDK)查看它,您会发现它没有资源限制( rendering.
  2. When )。因此,您可以尝试加载所有本机数据,并以某种方式使用JNI获取其中的一部分,但我怀疑它比蜜蜂库更好。
票数 1
EN

Stack Overflow用户

发布于 2011-12-29 01:29:24

在资源受限的环境中,我认为您唯一的解决方案是分而治之:例如缓存/平铺(如: tiles)

您可以从原始数据文件中加载/保存可管理的图像块来进行处理,而不是一次性加载和处理图像。这不是微不足道的,可能会变得非常复杂,这取决于你想做的处理类型,但如果你不想包含在图像质量上,这是唯一的方法。

票数 2
EN

Stack Overflow用户

发布于 2011-12-29 02:26:12

的确,这很难做到。但是如果图像是某种连续的光栅格式,你可以映射它(参见java.nio.ByteBuffer )-这样你就可以在不分配的情况下获得字节缓冲区。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8659090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档