【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
生活随笔
收集整理的这篇文章主要介绍了
【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- Xfermod 使用步骤
- 合成方程 ( Compositing equations )
- 老版本的表示方法
- 合成模式 相关 区域
Xfermod 使用步骤
Xfermod 使用步骤 :
① 创建画笔 : 注意 , 绘制 源图像 和 目标图像 , 以及设置 Xfermod 图形组合模式 , 使用的都是这个画笔 ;
//创建画笔Paint paint = new Paint();② 绘制 目标图像 ( Destination Image ) : 先绘制的是目标图像 , 设置 Xfermod 图形组合模式后 , 绘制的是源图像 ;
//绘制目标图像 ( Destination Image )canvas.drawBitmap(destinationImage, 0, 0, paint);③ 设置 Xfermod 图形组合模式 : 设置 18 种 Xfermod 模式之一 , 创建 PorterDuffXfermode 对象 ( 传入模式对应的常量 ) , 将 Xfermod 对象设置给画笔 Paint 对象 ;
PorterDuff.Mode mode = // choose a modepaint.setXfermode(new PorterDuffXfermode(mode));④ 绘制 目标图像 ( SourceImage ) : 先绘制的是目标图像 , 设置 Xfermod 图形组合模式后 , 绘制的是源图像 ;
//绘制 源图像 ( SourceImage ) canvas.drawBitmap(sourceImage, 0, 0, paint);⑤ 代码总结 : 使用 Xfermod 的四个步骤 :
// 1.创建画笔Paint paint = new Paint();// 2.绘制目标图像canvas.drawBitmap(destinationImage, 0, 0, paint);// 3.设置 Xfermod 图形组合模式PorterDuff.Mode mode = // choose a modepaint.setXfermode(new PorterDuffXfermode(mode));// 4.绘制 源图像 ( SourceImage ) canvas.drawBitmap(sourceImage, 0, 0, paint);合成方程 ( Compositing equations )
合成对象 :
- 1.目标图像 ( Destination Image ) : 先绘制 的图像 是目标图像 ;
- 2.源图像 ( Source Image ) : 设置 Xfermod 之后 , 后绘制的图像 是 源图像 ;
方程中的相关变量说明 :
- 1.目标图像相关 :
- ① 目标图像 指定像素位置 的透明度 : αdst\alpha_{dst}αdst ;
- ② 目标图像 指定像素位置 的颜色值 : CdstC_{dst}Cdst ;
- 2.源图像相关 :
- ① 源图像 指定像素位置 的透明度 : αsrc\alpha_{src}αsrc ;
- ② 源图像 指定像素位置 的颜色值 : CsrcC_{src}Csrc ;
- 3.合成结果相关 :
- ① 合成后 指定像素位置 的透明度 : αout\alpha_{out}αout ;
- ② 合成后 指定像素位置 的颜色值 : CoutC_{out}Cout ;
合成方程 :
- 1.方程来源 : 每一个独立的 透明度合成模式 或者 混合合成模式 都 提供了对应的方程 ;
- 2.方程作用 : 这些方程用于计算 源图像 与 目标图像 合成结果的 对应像素点的 透明度 和 颜色值 ;
老版本的表示方法
老版本的表示方法 :
- 1.目标图像相关 : [Da,Dc][D_a , D_c][Da,Dc] , 表示该目标图像的透明度和颜色值属性 ;
- ① 目标图像 指定像素位置 的透明度 : DaD_aDa ;
- ② 目标图像 指定像素位置 的颜色值 : DcD_cDc ;
- 2.源图像相关 : [Sa,Sc][S_a , S_c][Sa,Sc] , 表示该源图像的透明度和颜色值属性 ;
- ① 源图像 指定像素位置 的透明度 : SaS_aSa ;
- ② 源图像 指定像素位置 的颜色值 : ScS_cSc ;
- 3.合成结果相关 : [Ra,Rc][R_a , R_c][Ra,Rc] , 表示该合成结果图像的透明度和颜色值属性 ;
- ① 合成后 指定像素位置 的透明度 : RaR_aRa ;
- ② 合成后 指定像素位置 的颜色值 : RcR_cRc ;
合成模式 相关 区域
合成区域描述 :
- ① 集合 SSS 表示 源图像素 不透明区域 ;
- ② 集合 DDD 表示目标图像像素 不透明区域 ;
- ③ 集合 RRR 表示绘制结果的不透明区域 ;
- ④ 集合 AAA 代表全集所有区域 ( 整个框透明 + 不透明所有区域 ) ;
- ⑤ 集合 S∩DS \cap DS∩D 表示 源图像 与 目标图像 不透明区域的交集 ;
- ⑥ 集合 S∪DS \cup DS∪D 表示 源图像 与 目标图像 不透明区域的并集 ;
之后的每个模式都要分析上述某几个区域的 透明度 和 颜色值 ;
总结
以上是生活随笔为你收集整理的【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Android 应用开发】Paint
- 下一篇: 【Android 应用开发】View 与