鸿蒙混合模式

本文介绍了在鸿蒙系统中如何使用BlendMode和Canvas.SaveLayer()实现图形混合效果。内容包括透明背景的重要性、混合模式的使用注意事项以及通过创建PixelMap实现透明背景的两种方法。并探讨了非全透明背景对混合效果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用canvas进行绘图时,可以通过使用BlendMode/PorterDuffMode将所绘制的图形的像素与Canvas中对应位置的像素按照一定的计算规则进行混合,形成新的像素值,从而更新Canvas中最终显示的像素颜色值。

当使用BlendMode时,需要将其作为参数传给Paint,即Paint.setBlendMode(BlendMode BlendMode)方法,这样在用该画笔Paint 进行绘图时,就会使用传入的BlendMode,如果不想再使用BlendMode,那么可以执行Paint.setBlendMode(null).

同时,鸿蒙还为提供了颜色的混合设置方式,即Canvas.drawColor(int color,BlendMode mode);或Canvas.drawColor(int color,Canvas.ProterDuffMode mode);两者显示效果相同。

如果想要查看完美的混合效果,需要遵循以下几点,不遵守以下注意点的会根据对应混合模式进行显示:

1、透明背景。这点需要特别注意,不满足该条件可能不会显示出想要的效果。

2、使用对象:PixelMap/Color/Paint

3、图像大小,图像大小决定原图像和目标图像的相交区域,这会对图像混合效果造成影响。

CLEAR SRC DST

SRC_OVER DST_OVER SRC_IN

DST_IN SRC_OUT DST_OUT

SRC_ATOP DST_ATOP XOR

PLUS MODULATE SCREEN

OVERLAY DARKEN LIGHTEN

COLOR_DODGE COLOR_BURN HARD_LIGHT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值