首页 > 解决方案 > 在不改变大小的情况下将 JPG 转换为位图

问题描述

我将.jpg图像保存在我的cache文件夹中。图像为 4,032x3,024(24 位颜色),重 3.35MB。现在,我想将其转换jpgbitmap.

我使用了代码:

val bitmapFromJpg = BitmapFactory.decodeFile(jpgFile.absolutePath)

但令我惊讶的是,它自动改变了图像的原始尺寸——1,024x768(32 位)。

即使

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

结果是一样的……

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

标签: androidkotlinbitmapjpeg

解决方案


是的,你可以改变inScaled

默认情况下它的值是true,试试这个代码

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

我对此进行了测试,我的jpg图像尺寸(HeightXWidth)为 600X600,转换为bitmap它后保持相同的 600X600。


推荐阅读