继续上一节的讲解,看看之前 《vb.net 教程 5-16 图像处理之ImageAttributes 类1 颜色矩阵1》中讲到的其他几个特殊矩阵的使用。
'仅绿色分量 Private Sub Button11_Click(sender As Object,e As EventArgs) Handles Button11.Click Dim imageAttributes As New ImageAttributes() '仅绿色分量 Dim imgMatrixElement()() As Single = { New Single() {0,0},New Single() {0,1,0} } Dim imgMatrix As New ColorMatrix(imgMatrixElement) imageAttributes.SetColorMatrix(imgMatrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap) Dim destImg As New Bitmap(sourceImg.Width,sourceImg.Height) Dim g As Graphics = Graphics.FromImage(destImg) g.DrawImage(sourceImg,New Rectangle(0,sourceImg.Width,sourceImg.Height),sourceImg.Height,GraphicsUnit.Pixel,imageAttributes) picDest.Image = destImg End Sub
'仅蓝色分量 Private Sub Button12_Click(sender As Object,e As EventArgs) Handles Button12.Click Dim imageAttributes As New ImageAttributes() '仅蓝色分量 Dim imgMatrixElement()() As Single = { New Single() {0,imageAttributes) picDest.Image = destImg End Sub
'灰度:指数加权法 Private Sub Button13_Click(sender As Object,e As EventArgs) Handles Button13.Click Dim imageAttributes As New ImageAttributes() '灰度 Dim imgMatrixElement()() As Single = { New Single() {0.3,0.3,New Single() {0.59,0.59,New Single() {0.11,0.11,imageAttributes) picDest.Image = destImg End Sub
'逆反 Private Sub Button14_Click(sender As Object,e As EventArgs) Handles Button14.Click Dim imageAttributes As New ImageAttributes() '逆反 Dim imgMatrixElement()() As Single = { New Single() {-1,-1,New Single() {1,imageAttributes) picDest.Image = destImg End Sub
传入的矩阵不同,输出图像的颜色不同。
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看 vb.net 教程 目录
原文链接:https://www.f2er.com/vb/256616.html