Как получить цвет пикселя в PictureBox? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый день, Прошу помочь в реализации оператора GetPixel для Picturebox, перепробовал все возможные варианты кодов вот например:
Листинг программы
  1. Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  2. Dim bmp As New Bitmap(PictureBox1.Image)
  3. Dim clr As System.Drawing.Color = Color.FromArgb(bmp.GetPixel(e.X, e.Y).ToArgb())
  4. MessageBox.Show(String.Format("{0}, {1}, {2}", clr.R, clr.G, clr.B))
  5. End Sub
Но постоянно выскакивает ошибка : Ссылка на объект не указывает на экземпляр объекта. Спасибо заранее !!!

Решение задачи: «Как получить цвет пикселя в PictureBox?»

textual
Листинг программы
  1. Imports System.Drawing.Drawing2D
  2.  
  3. Public Class Form1
  4.  
  5.     Private lastPT As Point
  6.     Private signature As New GraphicsPath
  7.  
  8.     Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  9.  
  10.         If Not IsNothing(signature) Then
  11.             If e.Button = Windows.Forms.MouseButtons.Left Then
  12.                 lastPT = New Point(e.X, e.Y)
  13.             End If
  14.         End If
  15.     End Sub
  16.  
  17.     Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
  18.  
  19.         If Not IsNothing(signature) Then
  20.             If e.Button = Windows.Forms.MouseButtons.Left Then
  21.                 Dim curPt As New Point(e.X, e.Y)
  22.                 signature.AddLine(lastPT, curPt)
  23.  
  24.                 lastPT = curPt
  25.                 PictureBox1.Refresh()
  26.             End If
  27.  
  28.         End If
  29.     End Sub
  30.  
  31.     Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
  32.         If Not IsNothing(signature) Then
  33.  
  34.             If e.Button = Windows.Forms.MouseButtons.Left Then
  35.                 signature.StartFigure()
  36.             End If
  37.  
  38.         End If
  39.     End Sub
  40.  
  41.  
  42.     Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
  43.  
  44.         If Not IsNothing(signature) Then
  45.             e.Graphics.DrawPath(Pens.Black, signature)
  46.         End If
  47.  
  48.     End Sub
  49.  
  50.  
  51.     Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
  52.         signature.Reset()
  53.         PictureBox1.Refresh()
  54.  
  55.     End Sub
  56.  
  57.  
  58.     Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
  59.         Dim bmp As New Drawing.Bitmap(PictureBox1.Width, PictureBox1.Height)
  60.         PictureBox1.DrawToBitmap(bmp, PictureBox1.ClientRectangle)
  61.         bmp.Save(System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.bmp"), System.Drawing.Imaging.ImageFormat.Bmp)
  62.  
  63.     End Sub
  64.  
  65.  
  66. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы