android - 在不改变大小的情况下将 JPG 转换为位图
问题描述
我将.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。
推荐阅读
- c++ - 链接多个平台工具集是否安全?
- python - 迭代两个相同长度的数据帧
- python - 如何解决摄氏-华氏转换中反复出现的 0 问题?
- c# - 在 ASP.Net Web Api 2.0 中使用 OAuth 令牌
- docusignapi - 我们可以从 DOCUSIGN 链接中提取信封 ID
- node.js - Facebook 客户端的对话流快速回复
- php - 致命错误:未捕获的错误:在 bool 上调用成员函数 bind_param()
- php - Laravel 模型关系 - 搜索不起作用
- delphi - 更改 TListView TObjectAppearance 中的数字格式
- reactjs - 使用 PropTypes 定义类型的选项