Как получить цвет пикселя в PictureBox? - Visual Basic .NET
Формулировка задачи:
Добрый день,
Прошу помочь в реализации оператора GetPixel для Picturebox, перепробовал все возможные варианты кодов
вот например:
Но постоянно выскакивает ошибка : Ссылка на объект не указывает на экземпляр объекта.
Спасибо заранее !!!
Листинг программы
- Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
- Dim bmp As New Bitmap(PictureBox1.Image)
- Dim clr As System.Drawing.Color = Color.FromArgb(bmp.GetPixel(e.X, e.Y).ToArgb())
- MessageBox.Show(String.Format("{0}, {1}, {2}", clr.R, clr.G, clr.B))
- End Sub
Решение задачи: «Как получить цвет пикселя в PictureBox?»
textual
Листинг программы
- Imports System.Drawing.Drawing2D
- Public Class Form1
- Private lastPT As Point
- Private signature As New GraphicsPath
- Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
- If Not IsNothing(signature) Then
- If e.Button = Windows.Forms.MouseButtons.Left Then
- lastPT = New Point(e.X, e.Y)
- End If
- End If
- End Sub
- Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
- If Not IsNothing(signature) Then
- If e.Button = Windows.Forms.MouseButtons.Left Then
- Dim curPt As New Point(e.X, e.Y)
- signature.AddLine(lastPT, curPt)
- lastPT = curPt
- PictureBox1.Refresh()
- End If
- End If
- End Sub
- Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
- If Not IsNothing(signature) Then
- If e.Button = Windows.Forms.MouseButtons.Left Then
- signature.StartFigure()
- End If
- End If
- End Sub
- Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
- If Not IsNothing(signature) Then
- e.Graphics.DrawPath(Pens.Black, signature)
- End If
- End Sub
- Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
- signature.Reset()
- PictureBox1.Refresh()
- End Sub
- Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
- Dim bmp As New Drawing.Bitmap(PictureBox1.Width, PictureBox1.Height)
- PictureBox1.DrawToBitmap(bmp, PictureBox1.ClientRectangle)
- bmp.Save(System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.bmp"), System.Drawing.Imaging.ImageFormat.Bmp)
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д