java降低uri图像质量以减小文件大小
我有一个高分辨率image
{
我试过这个:
Picasso.with(context).load(image).resize(100,100).get();
但它不起作用,因为你需要从一个单独的Thread
来做这件事,我没有找到一个侦听器来告诉你调整大小的过程何时结束
有没有人有一个解决方案可以降低图像质量以获得较小的文件大小
你可以在下面搜索框中键入要查询的问题!
我有一个高分辨率image
{
我试过这个:
Picasso.with(context).load(image).resize(100,100).get();
但它不起作用,因为你需要从一个单独的Thread
来做这件事,我没有找到一个侦听器来告诉你调整大小的过程何时结束
有没有人有一个解决方案可以降低图像质量以获得较小的文件大小
# 1 楼答案
第一步:在一个
ContentResolver
上调用openInputStream()
,传递你的Uri
步骤#2:创建一个
BitmapFactory.Options
对象,使用inSampleSize
来控制要执行的下采样程度,创建一个较低的分辨率Bitmap
步骤#3:将流和
BitmapFactory.Options
对象传递给BitmapFactory
上的decodeStream()
,以获得下采样Bitmap
第4步:上传
Bitmap
,其中的细节会因您用于上传的任何API而有所不同(byte[]
,File
,等等)步骤#5:在后台线程上执行步骤#1-4,因为不应该在主应用程序线程上执行磁盘I/O、位图下采样和网络操作