我想用BitmapFactory.decodeFile(路径,选项)从SD卡解码图像。
我也希望大于2048x2048像素的图像缩小到最大2048x2048(保持比例)。
我可以在获取位图后手动执行此操作,但除了已分配的字节外,还需要分配大量的字节。
我应该如何设置我的BitmapFactory.Options对象来获得该效果?
感谢Android如何使用BitmapFactory选项缩放图像选项
17
A
回答
10
使用BitmapFactory.Options.inSampleSize当您第一次加载图像以获得尽可能接近您的目标尺寸的大小,然后使用Bitmap.createScaledBitmap
来缩放到所需的确切大小。
这里有一些代码在this answer。
3
你可以尝试这样的事情:
int imageWidth, imageHeight;
Bitmap result = Bitmap.createScaledBitmap(bitmapPicture,
imageWidth, imageHeight, false);
在这里,你可以添加自己的宽度和高度。 bitmapPicture
是Bitmap
的对象。 让我知道这是否对你有任何帮助。
5
从您的Options
开始,将inJustDecodeBounds
设置为true
,这将为您提供图像的大小,而不会加载任何图像数据。
如果图片尺寸小于您的最大尺寸,则只需像往常一样加载。
另一方面,如果太大,请使用inSampleSize
来读取较小的位图。
注:我不认为解码做任何过滤使用inSampleSize的时候,所以你可能会失去一些细节,但你的图像尺寸是如此之大(2048像素),我不认为这会造成任何问题。
相关问题
- 1. 使用BitmapFactory选项的Android位图缩放比例
- 2. Android选项卡,如何显示选定选项卡的图像
- 3. 对话框中的图像缩放选项android
- 4. 如何将图像放置在android的选项卡活动选项卡中?
- 5. 将Android图像缩放到Listview项目
- 6. JIT图上的替代缩放选项
- 7. 缩放复选框内的图像android
- 8. 如何使用缩放缩放封面流图像放大android
- 9. OpenCV - 图像压缩的可能选项
- 10. 如何使用子选项做选项?
- 11. 万能图像加载器有放大/缩小选项吗?
- 12. 缩放和旋转图像,iframe中的选项
- 13. LoaderImageView缩放选项不起作用
- 14. 图像的图像选择选项
- 15. .android谷歌地图显示空白网格与缩放选项
- 16. 将图像放入jQuery选项卡中?
- 17. 像谷歌播放选项
- 18. 如何在共享首选项中保存缩放位图?
- 19. Android选项卡图像不适合选项卡
- 20. 如何用放大镜在新选项卡中打开图像
- 21. 将选项缩放选项以编程方式创建imageview
- 22. iOS Safari - 禁用缩放以缩放选项
- 23. 为什么我不使用BitmapFactory的inPurgeable选项?
- 24. 如何使用android粘贴选项
- 25. 使用选项标签添加图像
- 26. knitRBootstrap:缩放选项,缩略图大小和打印尺寸
- 27. android更好的保存图像选项?
- 28. Android将图像添加到首选项?
- 29. 带选择选项的图像地图
- 30. 如何从order_id获取选项图像
就像我说的,我试图避免不得不分配另一个2048x2048像素,但让BitmapFactory自动执行此操作,因为我的内存很短。你的方法只是分配一个新的位图,这不是我想要的。感谢您的回复。 – saarraz1 2012-02-20 12:26:47