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

时间:2016-03-14 09:39:10

标签: android resize save android-glide

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

Glide
    .with(context)
    .load(path)
    .override(600, 200) 
    .centerCrop() 
    .into(imageViewResizeCenterCrop);

我该怎么做?

由于

2 个答案:

答案 0 :(得分:9)

是的,这是可能的。我正在使用我为此特定目的创建的SimpleTarget(Glide用语custom target)后代。它使用起来非常简单。这是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)
    }

}

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

Glide
    .with(context)
    .load(path)
    .asBitmap()
    .centerCrop()
    .into(new FileTarget(pathToDestination, 600, 200));

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

答案 1 :(得分:1)

您可以使用自定义位图转换

执行此操作
Glide.with(this)
            .load(path)
            .bitmapTransform(new CropTransformation(this, 600, 200))
            .into(imageView);

下载CropTransformation

内部

 public Resource<Bitmap> transform(Resource<Bitmap> resource, int outWidth, int outHeight) {`

之前保存bitmap
 return BitmapResource.obtain(bitmap, mBitmapPool);

查看所有转化here