[.NET] 色相轉換?

看板Visual_Basic作者 (喵喵叫的蜜蜂貓)時間12年前 (2013/05/26 17:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): 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
文章代碼(AID): #1HeTn5VX (Visual_Basic)
文章代碼(AID): #1HeTn5VX (Visual_Basic)