浮雕的算法:
下一行的红绿蓝颜色分量减去上一行的红绿蓝颜色分量,再加上128
如果小于0,那么等于0,如果大于255,那么等于255
R=R(i-1,j)-R(i,j)+128
G=G(i-1,j)-G(i,j)+128
B=B(i-1,j)-B(i,j)+128
主要代码如下:
'浮雕1 Private Sub btnEmboss_Click(sender As Object,e As EventArgs) Handles btnEmboss.Click Dim pSourceColor1 As Color Dim pSourceColor2 As Color Dim pDestColor As Color Dim destImg As New Bitmap(sourceImg.Width,sourceImg.Height) Dim R,G,B As Integer Dim R1,G1,B1 As Integer Dim R2,G2,B2 As Integer For i As Integer = 1 To sourceImg.Width - 1 For j As Integer = 0 To sourceImg.Height - 1 pSourceColor1 = sourceImg.GetPixel(i,j) R1 = pSourceColor1.R G1 = pSourceColor1.G B1 = pSourceColor1.B pSourceColor2 = sourceImg.GetPixel(i - 1,j) R2 = pSourceColor2.R G2 = pSourceColor2.G B2 = pSourceColor2.B R = R1 - R2 + 128 G = G1 - G2 + 128 B = B1 - B2 + 128 If R < 0 Then R = 0 If R > 255 Then R = 255 If G < 0 Then G = 0 If G > 255 Then G = 255 If B < 0 Then B = 0 If B > 255 Then B = 255 pDestColor = Color.FromArgb(R,B) destImg.SetPixel(i,j,pDestColor) Next Next picDest.Image = destImg End Sub@H_404_19@