GDI ColorMatrix 彩色矩陣

2022-08-28 08:57:09 字數 2716 閱讀 4241

colormatrix (彩色矩陣) 類位於system.drawing.imaging命名空間

先看看下面的**

colormatrix cm = new colormatrix(new float,

new float,

new

float,

new float,

new

float,

new float});

矩陣係數組成乙個 5x5 的線性轉換,用於轉換

argb 的單色值。例如,argb 向量表示為 alpha、red(紅色)、green(綠色)、blue(藍色)和 w,此處 w 始終為

1。那麼w是什麼?為什麼要定義為5x5的矩陣呢?

經過查詢msdn發現有這篇文章

《使用顏色矩陣對單色進行變換》裡面這樣講到:

gdi+ 提供用於儲存和操作影象的 image 和 bitmap 類。image 和 bitmap

物件將每個畫素的顏色都儲存為 32 位的數:紅色、綠色、藍色和 alpha 各佔 8 位。這四個分量的值都是 0 到 255,其中 0 表示沒有亮度,255

表示最大亮度。alpha 分量指定顏色的透明度:0 表示完全透明,255 表示完全不透明。

顏色向量採用 4

元組形式(紅色、綠色、藍色、alpha)。例如,顏色向量 (0, 255, 0, 255)

表示一種沒有紅色和藍色但綠色達到最大亮度的不透明顏色。

表示顏色的另一種慣例是用數字 1 表示亮度達到最大。使用這種慣例,上一段中描述的顏色將用

(0, 1, 0, 1) 表示。gdi+ 在進行顏色變換時使用以 1 表示最大亮度的慣例。

可通過用 4×4

矩陣乘以這些顏色向量將線性變換(旋轉和縮放等)應用到顏色向量中。但是,您不能使用 4×4 矩陣進行平移(非線性)。如果在每個顏色向量中再新增乙個虛擬的第 5

座標(例如,數字 1),則可使用 5×5

矩陣應用任何組合形式的線性變換和平移。由線性變換組成的後跟平移的變換稱為仿射變換。

我認為可以理解為虛擬向量

在visual

彩色矩陣應用到影象上可以使用imageattributes.setcolormatrix

方法

using

system;

using

system.drawing;

using

system.drawing.imaging;

using

system.collections;

using

system.componentmodel;

using

system.windows.forms;

using

system.data;

namespace

grayshear

//////

clean up any resources being used.

///protected

override

void

dispose(

bool

disposing )

}base

.dispose( disposing );

}#region

windows form designer generated code

//////

required method for designer support - do not modify

///the contents of this method with the code editor.

///private

void

initializecomponent()

#endregion

//////

///[stathread]

static

void

newform1());

}private

void

form1_load(

object

sender, system.eventargs e)

,new

float

,new

float

,new

float

,new

float

,new

float

});/*

//gilles khouzams colour corrected grayscale shear

colormatrix cm = new colormatrix(new float,

new float,

new float,

new float,

new float,

new float});

*/imageattributes ia

=new

imageattributes();

ia.setcolormatrix(cm);

g.drawimage(img,

newrectangle(0,

0,img.width,img.height),0,

0,img.width,img.height,graphicsunit.pixel,ia);

g.dispose();

this

.backgroundimage

=bm;} }

}}

GDI ColorMatrix的完全揭秘

無論是用何種語言,只要使用過windows的gdi 的人對colormatrix都不陌生,我的blog文章中也多次提到過,並在 gdi for vcl基礎 顏色調整矩陣colormatrix詳解 一文中對其功能作了較為詳細的講解,雖然自認對colormatrix使用已經相當熟練,但對其原理也是知其然...

GDI ColorMatrix的完全揭秘

無論是用何種語言,只要使用過windows的gdi 的人對colormatrix都不陌生,我的blog文章中也多次提到過,並在 gdi for vcl基礎 顏色調整矩陣colormatrix詳解 一文中對其功能作了較為詳細的講解,雖然自認對colormatrix使用已經相當熟練,但對其原理也是知其然...

彩超產品亮點

序號 特色宣傳點 操控性,外觀介面,技術創新三方面 1操作靈敏簡約,按鍵觸感舒適 操控性2 模組化,靈活拆卸與安裝 3體積小,重量輕便,可折疊支架,360 旋轉 外觀介面 4超高解析度顯示,精確診斷,無人體損傷 5語音識別,語音提醒 6速度圖,頻率圖,能量圖,黑白圖,彩色圖等多種影象顯示 7全自動化...