在不改变大小的情况下将 JPG 转换为位图

Converting JPG to Bitmap with-out changing size

我将 .jpg 图片保存在我的 cache 文件夹中。图像为 4,032x3,024(24 位颜色),重量为 3.35MB。 现在,我想将这个完全相同的 jpg 转换为 bitmap.

我使用了代码:

val bitmapFromJpg = BitmapFactory.decodeFile(jpgFile.absolutePath)

但令我惊讶的是它会自动更改图像的原始大小 - 1,024x768(32 位)。

甚至

val opts = BitmapFactory.Options()
opts.inSampleSize = 1
val bitmapFromJpg = BitmapFactory.decodeFile(jpgFile.absolutePath, opts)

结果是一样的...

为什么会出现这种情况以及如何避免(我想保持原始大小)?

是的,你可以改变 inScaled

默认值为true,试试这个代码

val opts = BitmapFactory.Options()
opts.inSampleSize = 1
opts.inScaled = false
val bitmapFromJpg = BitmapFactory.decodeFile(jpgFile.absolutePath, opts)

我对此进行了测试,我的 jpg 图像大小(HeightXWidth)是 600X600,在转换为 bitmap 后它保持不变 600X600。