Glide 库显示模糊图像的时间太长

Glide library taking too long to display blur images

我正在使用 Glide 库来显示带有模糊变换的图像,但显示时间太长。显示模糊图像大约需要 6-8 秒。 我要显示的图片是本地保存的。

没有模糊的图像几乎可以立即加载。
这是我正在使用的代码:

Glide.with(getActivity())
    .load(img)
    .transition(DrawableTransitionOptions.withCrossFade())
    .transform(new BlurTransformation(), new CenterCrop())
    .placeholder(R.drawable.back)
    .error(R.drawable.back)
    .into(layout);

我也试过像下面这样将参数传递给 BlurTransformation(),但是 none 有效。

new BlurTransformation(context)
new BlurTransformation(25)
new BlurTransformation(25, 5)

这是我在 build.gradle 中与 Glide 相关的内容:

implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'jp.wasabeef:glide-transformations:4.0.0'

我之前使用过 Picasso 库,它在模糊变换方面工作得很好,但 Glide 花费的时间太长了。

滑行 嘿, 如果你看到滑动模糊转换代码的文档,

@Override   
protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,@NonNull Bitmap toTransform, int outWidth, int outHeight) {

    int width = toTransform.getWidth();
    int height = toTransform.getHeight();
    int scaledWidth = width / sampling;
    int scaledHeight = height / sampling;

    Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap);
    canvas.scale(1 / (float) sampling, 1 / (float) sampling);
    Paint paint = new Paint();
    paint.setFlags(Paint.FILTER_BITMAP_FLAG);
    canvas.drawBitmap(toTransform, 0, 0, paint);

    bitmap = FastBlur.blur(bitmap, radius, true);

    return bitmap;   
}

它正在对位图进行操作,如果您的图像尺寸较大,则对位图进行操作会花费一些时间,-请使用较浅的图像-您可以自行进行模糊操作。 - 你需要显示加载器,直到你的操作不在位图上执行。

============================================= ===========================