给你贴个代码,是我最近做的,用的是vb。net,估计一样的。
Public Class Form1 Inherits System.Windows.Forms.Form Dim math1 As System.Math Dim i, rr, gg, r, a, g, b, bb, aa, ax, rx, bx, gx, k1, k2 As Short Dim j As Short Dim color1, c, cc, cd As System.Drawing.Color Dim color2 As System.Drawing.Color Dim tuxing As System.Drawing.Bitmap Dim tuxing2 As System.Drawing.Bitmap Dim g1 As System.Drawing.Graphics
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click On Error GoTo errorhandler Dim pic As Image OpenFileDialog1.Filter = "all files|(*.*)|(*.tif)|*.tif|(*.bmp)|*.bmp|(*.jpg)|*.jpg" OpenFileDialog1.FilterIndex = 4 OpenFileDialog1.Title = "打开.tif" OpenFileDialog1.ShowDialog() pic = New Bitmap(OpenFileDialog1.FileName) PictureBox1.Image = pic PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Exit Suberrorhandler: exceptionhandler() End Sub Sub exceptionhandler() MessageBox.Show("异常行为:" & Err.Description) End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Cursor = Cursors.WaitCursor g1 = PictureBox1.CreateGraphics tuxing = PictureBox1.Image Dim testimg As New Bitmap(tuxing.Width, tuxing.Height, Imaging.PixelFormat.Format24bppRgb) 'tuxing2 = Image.FromFile("c:\test.bmp") 'tuxing2=picturebox2.image For i = 0 To tuxing.Width - 1 For j = 0 To tuxing.Height - 1 color1 = tuxing.GetPixel(i, j) color2 = Color.FromArgb(255 - color1.A, 255 - color1.B, 255 - color1.G, 255 - color1.R) testimg.SetPixel(i, j, color2) Next j Next i 'testimg.Save("c:\test.bmp") PictureBox2.Image = testimg Me.Cursor = Cursors.Arrow End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Cursor = Cursors.WaitCursor Dim blocksize As Short = 3 Dim n As Short = 0 tuxing = PictureBox1.Image Dim tuxing2 As New Bitmap(tuxing.Width, tuxing.Height, Imaging.PixelFormat.Format24bppRgb) For i = 2 To tuxing.Width - 2 For j = 2 To tuxing.Height - 2 rx = 0 : gx = 0 : bx = 0 For k1 = -1 To 1 For k2 = -1 To 1 c = tuxing.GetPixel(i + k1, j) r = c.R g = c.G b = c.B a = c.A rx = rx + r gx = gx + g bx = bx + b Next k2 Next k1 rr = rx / 25 gg = gx / 25 bb = bx / 25 If rr < 0 Then rr = 0 If rr > 255 Then rr = 255 If gg < 0 Then gg = 0 If gg > 255 Then gg = 255 If bb < 0 Then bb = 0 If bb > 255 Then bb = 255 c = c.FromArgb(a, rr, gg, bb) tuxing2.SetPixel(i, j, c) Next j Next i tuxing2.Save("c:\test1.tif") PictureBox2.Image = tuxing2 Me.Cursor = Cursors.Arrow End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Close() End Sub