Glide库实现图片灰度化

7

我正在使用Glide库将图片URL加载到ImageView中。

Glide.with(context)
                .load(imageurl)
                .apply(RequestOptions.circleCropTransform())
                .into(holder.thumbnail);

实际上,这个图像已经成功加载并且是圆形的。

我需要加载圆形+灰度图像。

使用Glide库可以实现吗?


你为灰度图像做了什么?在你的图像视图上添加一个灰度样式或图像,可能会起作用。 - Sree
1
这可能会对您有所帮助:glide-transformations - AskNilesh
1
谢谢Nilu,我正在尝试使用它。 - Jack
为什么需要Glide?你可以使用ColorMatrix来实现。 - Phantômaxx
2个回答

27

您可以使用Android的android.graphics.ColorMatrix类将饱和度设置为0,从而使ImageView变成灰度。

您可以通过两个步骤实现您想要的效果。 1. 使用Glide使ImageView成为圆形。 2. 然后使用ColorMatrix类将ImageView变成灰度。

Glide.with(context)
.load(imageurl)
.apply(RequestOptions.circleCropTransform())
.into(holder.thumbnail);

ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
holder.thumbnail.setColorFilter(filter);

1
太棒了。实际上我一直在使用 MultiTransformation multi = new MultiTransformation( new GrayscaleTransformation(), new CropCircleTransformation()); Glide.with(context) .load(imageurl) .apply(bitmapTransform(multi)) .into(holder.thumbnail);但是,你的答案非常有效。 - Jack
你真是太棒了。再也没有我使用Glide-transformations库时遇到的闪烁问题了!! - anni
当我从URL下载图像时,这不起作用。 - akshat tailang

2
如果您正在使用 Kotlin:

Original Answer 翻译成“最初的回答”:

            //Grey scale
            val colorMatrix =  ColorMatrix();
            colorMatrix.setSaturation(0.0f);
            val filter =  ColorMatrixColorFilter(colorMatrix);
            itemView.thumb.colorFilter = filter;

6
如果你使用 Kotlin,就不需要使用; - caner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接