作者SmallBeeWayn (喵喵叫的蜜蜂貓)
看板Visual_Basic
標題[.NET] 色相轉換?
時間Sun May 26 17:56:17 2013
請輸入專案類型(網站專案或者應用程式專案): Visual Studio 2012
想做出一個色相轉換矩陣,輸入徑度然後把圖片轉色相(HUE)
可是實際轉換結果是錯的,例如白色怎麼轉應該都是白的
可是卻會變 白->黃->綠->淡藍->白
矩陣是網路找來的,理論上不應該錯,比較擔心是徑度、角度之間轉換的問題
程式碼如下:
Friend Const hueRdef = 0.213
Friend Const hueGdef = 0.715
Friend Const hueBdef = 0.072
Private att As New Imaging.ImageAttributes
~~~~~~~~~~~~~~~~~~~~
Dim aCos = Math.Abs((Now.Second+Now.Millisecond/1000) Mod 10 - 5) * Math.PI
Dim aSin = Math.Sin(aCos)
aCos = Math.Cos(aCos)
Dim cmT As New ColorMatrix(New Single()() { _
New Single() {
hueRdef + aCos * (1 - hueRdef) - aSin * hueRdef
, hueGdef - aCos * hueGdef - aSin * hueGdef
, hueBdef - aCos * hueBdef + aSin * (1 - hueBdef), 0, 0}, _
New Single() {
hueRdef - aCos * hueRdef + aSin * 0.143
, hueGdef + aCos * (1 - hueGdef) + aSin * 0.14
, hueBdef - aCos * hueBdef - aSin * 0.283, 0, 0}, _
New Single() {
hueRdef - aCos * hueRdef - aSin * (1 - hueRdef)
, hueGdef - aCos * hueGdef + aSin * hueGdef
, hueBdef + aCos * (1 - hueBdef) + aSin * hueBdef, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}})
att.SetColorMatrix(cmT)
bG.DrawImage(img, rect, x, y, w, h, GraphicsUnit.Pixel, att)
--
單選題: 請問...從天上掉下來的是?
1.魔法國 2.隕石 3.來自未來的少女 4.娛樂用人型天使
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.203.171