使用Glide保存已调整大小的图像

Luc*_*oli 6 android resize save android-glide

是否可以通过在文件中滑动来保存调整大小的图像?我正在使用此代码:

Glide
    .with(context)
    .load(path)
    .override(600, 200) 
    .centerCrop() 
    .into(imageViewResizeCenterCrop);
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

谢谢

Lou*_*ier 9

是的,这是可能的.我正在使用我为此特定目的创建的SimpleTarget(Glide用语中的自定义目标)后代.它使用起来非常简单.这是Target代码:

import android.graphics.Bitmap;

import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;

import java.io.FileOutputStream;
import java.io.IOException;

public class FileTarget extends SimpleTarget<Bitmap> {
    public FileTarget(String fileName, int width, int height) {
        this(fileName, width, height, Bitmap.CompressFormat.JPEG, 70);
    }
    public FileTarget(String fileName, int width, int height, Bitmap.CompressFormat format, int quality) {
        super(width, height);
        this.fileName = fileName;
        this.format = format;
        this.quality = quality;
    }
    String fileName;
    Bitmap.CompressFormat format;
    int quality;
    public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
            try {
                FileOutputStream out = new FileOutputStream(fileName);
                bitmap.compress(format, quality, out);
                out.flush();
                out.close();
                onFileSaved();
            } catch (IOException e) {
                e.printStackTrace();
                onSaveException(e);
            }
    }
    public void onFileSaved() {
        // do nothing, should be overriden (optional)
    }
    public void onSaveException(Exception e) {
        // do nothing, should be overriden (optional)
    }

}
Run Code Online (Sandbox Code Playgroud)

以下是您在自己的示例中使用它的方法:

Glide
    .with(context)
    .load(path)
    .asBitmap()
    .centerCrop()
    .into(new FileTarget(pathToDestination, 600, 200));
Run Code Online (Sandbox Code Playgroud)

此代码不会在任何视图上显示图像,而是将其直接保存到目标.

  • @Loudenvier很好的答案,如果你想将图像设置为图像视图并保存到文件中,我也将ImageView目标作为参数传递.https://gist.github.com/agustinsivoplas/7261d7316e854a66a547e17da02476c3 :) (2认同)

And*_*ICE 1

您可以使用自定义位图转换来完成此操作

Glide.with(this)
            .load(path)
            .bitmapTransform(new CropTransformation(this, 600, 200))
            .into(imageView);
Run Code Online (Sandbox Code Playgroud)

下载作物转化

里面

 public Resource<Bitmap> transform(Resource<Bitmap> resource, int outWidth, int outHeight) {`
Run Code Online (Sandbox Code Playgroud)

bitmap之前保存

 return BitmapResource.obtain(bitmap, mBitmapPool);
Run Code Online (Sandbox Code Playgroud)

在这里查看所有转换