gpt4 book ai didi

android - 在 Android 上将大型位图文件调整为缩放的输出文件

转载 作者:IT老高 更新时间:2023-10-28 12:52:50 26 4
gpt4 key购买 nike

我的文件中有一个大位图(比如 3888x2592)。现在,我想将该位图的大小调整为 800x533 并将其保存到另一个文件中。我通常会通过调用 Bitmap.createBitmap 方法来缩放位图,但它需要一个源位图作为第一个参数,我无法提供,因为将原始图像加载到 Bitmap 对象中当然会超过内存(例如,参见 here)。

我也无法读取位图,例如,BitmapFactory.decodeFile(file, options),提供 BitmapFactory.Options.inSampleSize,因为我想要将其调整为精确的宽度和高度。使用 inSampleSize 会将位图大小调整为 972x648(如果我使用 inSampleSize=4)或 778x518(如果我使用 inSampleSize=5,这是甚至不是 2) 的幂。

我还想避免使用 inSampleSize 读取图像,例如在第一步中使用 972x648,然后在第二步中将其大小调整为 800x533,因为与直接调整原始大小相比,质量会很差图片。

总结一下我的问题:有没有办法读取 10MP 或更大的大图像文件并将其保存到新的图像文件,调整到特定的新宽度和高度,而不会出现 OutOfMemory 异常?

我还尝试了 BitmapFactory.decodeFile(file, options) 并将 Options.outHeight 和 Options.outWidth 值手动设置为 800 和 533,但它不起作用。

最佳答案

不。我很想有人纠正我,但我接受了你尝试的加载/调整大小方法作为妥协。

以下是任何人浏览的步骤:

  1. 计算最大可能的 inSampleSize 仍会产生比您的目标更大的图像。
  2. 使用 BitmapFactory.decodeFile(file, options) 加载图像,将 inSampleSize 作为选项传递。
  3. 使用 Bitmap.createScaledBitmap() 调整到所需尺寸。

关于android - 在 Android 上将大型位图文件调整为缩放的输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3331527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com