You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose中使用colorFilter将彩色图片转为黑白显示

Jetpack Compose 实现图片黑白效果的方案

要实现彩色图片转黑白灰度展示,你可以通过ColorFilter搭配灰度颜色矩阵实现,Compose已经封装好了快捷方法不需要手动写矩阵参数,直接调整饱和度为0即可得到纯黑白效果。

修改后的完整代码

import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.ColorMatrix

// ... 其余业务代码保持不变
Image(
    painter = painter, 
    contentDescription = null,
    modifier = Modifier.fillMaxSize(),
    contentScale = scale,
    colorFilter = ColorFilter.colorMatrix(ColorMatrix().apply {
        // 饱和度设为0,所有彩色信息会被转换为对应灰度值
        setToSaturation(0f)
    })
)

补充说明

  • 如果需要半灰度的褪色效果,可以把setToSaturation的参数调整为0到1之间的数值,数值越小灰度程度越高,参数为1时即为原图彩色效果
  • 该方案对所有类型的图片资源都生效,包括本地drawable资源、网络加载图片、矢量图等
  • 如果你需要自定义灰度的明暗表现,也可以手动构造ColorMatrix的参数,调整RGB通道的灰度映射权重

内容的提问来源于stack exchange,提问作者user15301088

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 19:06:04