有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java降低uri图像质量以减小文件大小

我有一个高分辨率image{},我想降低图像质量和大小,因为我正在将其上传到服务器,然后将其作为原始图像的较小版本加载

我试过这个:

Picasso.with(context).load(image).resize(100,100).get();

但它不起作用,因为你需要从一个单独的Thread来做这件事,我没有找到一个侦听器来告诉你调整大小的过程何时结束

有没有人有一个解决方案可以降低图像质量以获得较小的文件大小


共 (1) 个答案

  1. # 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、位图下采样和网络操作