0

嗨我正在尝试将下载的图片保存在设备存储中我有这种方法可以将图片保存在存储中但是保存后我发现图片质量很差请帮助我我想以相同的原始质量保存图片

Glide.with(mContext)
     .load("YOUR_URL")
     .asBitmap()
     .into(new SimpleTarget<Bitmap>(100,100) {
     @Override
     public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
               saveImage(resource);
          }});


 private String saveImage(Bitmap image) {
    String savedImagePath = null;

    String imageFileName = "JPEG_" + "FILE_NAME" + ".jpg";
    File storageDir = new File(
           Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
                    + "/YOUR_FOLDER_NAME");
    boolean success = true;
    if (!storageDir.exists()) {
        success = storageDir.mkdirs();
    }
    if (success) {
        File imageFile = new File(storageDir, imageFileName);
        savedImagePath = imageFile.getAbsolutePath();
        try {
            OutputStream fOut = new FileOutputStream(imageFile);
            image.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
            fOut.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Add the image to the system gallery
        galleryAddPic(savedImagePath);
        Toast.makeText(mContext, "IMAGE SAVED"), Toast.LENGTH_LONG).show();
    }
    return savedImagePath;
}

private void galleryAddPic(String imagePath) {
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(imagePath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    sendBroadcast(mediaScanIntent);
}
4

2 回答 2

0

您的 Bitmap.compress 已经处于最高质量,您可以将格式更改为 PNG,但您不会对图像进行压缩,因为 PNG 是一种无损格式。

您也可以更改图像的尺寸,更改SimpleTarget<Bitmap>(100,100)为原始尺寸。

于 2017-06-26T18:11:21.430 回答
0

这一行:

.into(new SimpleTarget<Bitmap>(100,100)

字面意思是你想要一个宽度为 100 像素、高度为 100 像素的图像,这真的非常小,我 99.99% 确定这就是你所说的“质量差”的意思。

如果你想要 100% 的原始图像,你应该使用这个:

.into(new SimpleTarget<Bitmap>(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)

“Target”是 Glide 中的一个类,它具有“SIZE_ORIGINAL”常量。

这将为您提供原始质量的完整图像,然后您可以保存。

于 2017-06-26T18:52:54.557 回答