如何在Jetpack Compose中使用AsyncImage加载图像并进行灰度转换?

6

我无法实现灰度转换。

加载图像的当前代码。

AsyncImage(
    model = ImageRequest.Builder(LocalContext.current)
        .data(url)
        .crossfade(true)
        .build(),
    contentDescription = "",
    contentScale = ContentScale.Crop,
    modifier = Modifier
        .size(44.dp)
        .clip(CircleShape),
)

我找到的灰度转换代码使用了已经被弃用的 rememberImagePainter 。如何使用 rememberAsyncImagePainter AsyncImage 来实现?
1个回答

5
您可以应用colorFilter属性:
val matrix = ColorMatrix()
matrix.setToSaturation(0F)

AsyncImage(
    model = ImageRequest.Builder(LocalContext.current)
        .data(url)
        .crossfade(true)
        .build(),
    contentDescription = "",
    contentScale = ContentScale.Crop,
    modifier = Modifier
        .size(44.dp)
        .clip(CircleShape),
    colorFilter = ColorFilter.colorMatrix(matrix)
)

1
工作得非常完美,谢谢! - undefined

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