【Android 应用开发】Paint 图形组合 Xfermod 简介 ( 图形组合集合描述 | Xfermod 简介 | PorterDuff 简介 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 应用开发】Paint 图形组合 Xfermod 简介 ( 图形组合集合描述 | Xfermod 简介 | PorterDuff 简介 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 圖形組合 集合描述
- Xfermod 簡介
- PorterDuff 由來
- Xfermod 合成模式分類
圖形組合 集合描述
圖形組合 集合描述 :
-
1.下面我們先描述兩個集合 :
- ① 集合 A : 由像素點組成的集合 A , 每個像素點都有顏色值 和 位置 屬性 ; 像素點組成的圖形如下 :
- ② 集合 B : 由像素點組成的集合 B , 每個像素點都有顏色值 和 位置 屬性 ; 像素點組成的圖形如下 :
- ① 集合 A : 由像素點組成的集合 A , 每個像素點都有顏色值 和 位置 屬性 ; 像素點組成的圖形如下 :
-
2.繪制區域指定 :
- ① 并集 A∪BA \cup BA∪B 繪制 :
- ② 交集 A∩BA \cap BA∩B 繪制 :
- ③ 相對補集 A?BA - BA?B ( 屬于集合A 不屬于集合B ) 繪制 :
- ④ 相對補集 B?AB - AB?A ( 屬于集合B 不屬于集合A ) 繪制 :
- ① 并集 A∪BA \cup BA∪B 繪制 :
-
3.繪制像素點顏色指定 : 在確定了繪制區域后 , 然后再確定繪制區域內的像素點顏色 :
- ① 交集重疊區域 繪制 集合 A 的像素點顏色 ;
- ② 交集重疊區域 繪制 集合 B 的像素點顏色 ;
- ③ 交集重疊區域 繪制 集合 A 與 集合 B 兩個像素點顏色經過某種運算之后的顏色 ;
- ④ 某區域 ( 集合 A 區域 , 集合 B 區域 , 交集區域 ?\cdots? 等等 ) 清空區域內的像素點顏色 , 即透明 ;
- ① 交集重疊區域 繪制 集合 A 的像素點顏色 ;
-
4.圖形組合 ( Xfermod ) : Xfermod 中定義了繪制各種區域 和 每個像素點顏色的 方式和規范 :
- ① 指定繪制區域 : 像素點集合 A 與 B 的交集 , 并集 , 補集 ( 相對補集 ?-? | 絕對補集 ~\sim~ ) , 對稱差 等像素點集合區域 ;
- ② 指定繪制區域像素點的顏色 : 繪制的像素點顏色進行計算 , 清空顏色 , 繪制集合A中的像素點顏色 , 繪制集合 B 中的像素點顏色 , 繪制兩個集合中對應的像素點進行某種計算后的顏色 ;
Xfermod 簡介
Xfermod 簡介 :
- 操作的載體 : 像素是要操作的元素 , 圖形組合 控制的是圖像指定 像素 的位置的顏色值 ;
- 操作過程 : 將要繪制的圖形的像素 ( 源圖像 Souurce ) 與 畫布上對應位置的像素 ( 目標圖像 Destination ) , 按照一定規則完成 兩個 圖像的組合 ;
- 常用的 Xfermod 類 : Xfermod 有三個子類分別是 :
- ① AvoidXfermode : 已過時 , 不支持硬件加速 , 不再研究 ;
- ② PixelXorXfermode : 已過時 , 不在研究 ;
- ③ PorterDuffXfermode : 該圖形組合模式是目前使用的主流方式 , 也是唯一方式 , 下面詳細講述該類型的圖形組合 ;
PorterDuff 由來
PorterDuff 由來 :
- 1.重要論文 : Thomas Porter ( 托馬斯 ?\cdot? 波特 ) 和 Tom Duff ( 湯姆 ?\cdot? 達夫 ) 在 1984年 發表的一篇具有重大意義的論文 , 其名稱是 “Compositing Digital Images” ( 組合數字圖像 ) ;
- 2.名稱由來 : PorterDuff 圖形組合模式 類名稱 , 是向其所做的工作致以敬意 ;
- 3.論文內容 : 在這篇論文中 , 兩位作者描述了 12 種圖形合成運算符 ,
- 4.合成運算符作用 ( 控制顏色 ) : 源圖像 與 目標圖像 進行組合 , 其組合結果的對應位置像素有對應的顏色值 , 合成運算符就是控制這個顏色值是多少 ;
- ① 目標圖像 ( Destination ) : 渲染目標的內容 ( The content of the render target ) ;
- ② 源圖像 ( Source ) : 要渲染的圖形對象 ( The Graphics object to render ) ;
Xfermod 合成模式分類
Xfermod 合成模式分類 :
- 1.透明度合成模式 :
- ① 論文中定義 : Thomas Porter ( 托馬斯 ?\cdot? 波特 ) 和 Tom Duff ( 湯姆 ?\cdot? 達夫 ) 的工作 僅側重與 源 ( Source ) 和 目標 ( Destination ) 合成 結果 對透明度通道的影響 ;
- ② 原始論文中描述的 12 個合成操作符 , 被稱為 “Alpha Compositing modes” ( 透明度合成模式 ) ;
- 2.混合合成模式 :
- ① 不被 Alpha 通道約束 : 這些模式同樣定義了 源 和 目標 的合成結果 , 但其結果不被 Alpha ( 透明度 ) 通道約束 ;
- ② 為了方便起見 , PorterDuff 類中還提供了其它幾種 Blending modes ( 混合合成模式 ) ;
這些混合合成模式不是 Thomas Porter ( 托馬斯 ?\cdot? 波特 ) 和 Tom Duff ( 湯姆 ?\cdot? 達夫 ) 提出的 , 但是為了方便起見 , 還是將 幾種 混合合成模式定義在了類中 ;
總結
以上是生活随笔為你收集整理的【Android 应用开发】Paint 图形组合 Xfermod 简介 ( 图形组合集合描述 | Xfermod 简介 | PorterDuff 简介 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Paint
- 下一篇: 【Android 应用开发】Paint