Страница: 1 |
Страница: 1 |
Вопрос: Visual Basic 2008 проблемы с графикой (gdi+)
Добавлено: 10.04.11 19:25
Автор вопроса: DrKillJoy
Люди!!! Если тут кто-нибудь есть отзовитесь!!! Помогите очень нужно!!! Я долго искал по этой теме в интернете, но ничего не нашел!!! Если тут кто-то есть, может кто знает?!?!?!
Моя проблема:
Я в Visual Basic 2008 работаю с графикой (gdi+), отрисовываю в picturebox рисунок.
Вот код:
Dim pic As Bitmap
pic = Image.FromFile("C:\door.bmp")
e.Graphics.DrawImage(pic, 0, 0)
End Sub
Затем мне нужно у отрисовонного изображения получить значение цвета, в каких либо точках:
Dim a As Bitmap
Dim b As Color
a = PictureBox1.Image 'Здесь говорить, что nothing
b = a.GetPixel(e.X, e.Y)
Me.Text = b.ToString 'Здесь должен выводиться цвет
End Sub
Код правильный, но он не работает!!! Почему-то DrawImage не перерисовывает рисунок и Picturebox1.image остается пустой. Помогите!!! Мне очень нужно!!!
P.S. Мне предлогали поступить так PictureBox1.Image = Image.FromFile("C:\door.bmp"), но это не выход. Мне нужно именно то, что получиться в результате DrawImage.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
СанСаныч
Вопросов: 3
Ответов: 118
Профиль | | #1
Добавлено: 10.04.11 19:44
Ты работаешь с pic, вот и передай ее в PictureBox1_MouseMove.
Номер ответа: 2
Автор ответа:
DrKillJoy
Вопросов: 10
Ответов: 18
Профиль | | #2
Добавлено: 10.04.11 20:26
Ближе!!! Но еще не то.
Я могу по нескольку раз добавить изображение через DrawImage, могу добавить точки, линии. Вот у этого перерисованного изображения, мне и нужно получит некоторые цвета!!!
Может кто еще подскажет??? Очень нужно!!!
Номер ответа: 3
Автор ответа:
СанСаныч
Вопросов: 3
Ответов: 118
Профиль | | #3
Добавлено: 10.04.11 21:23
Меня опять не в всерьез принимают. По пунктам:
1. Вынеси Dim pic As Bitmap на уровень модуля и преврати Bitmap в Image => Dim pic As Bitmap
2. После pic = Image.FromFile("C:\door.bmp" добавь PictureBox1.Image = pic
Номер ответа: 4
Автор ответа:
СанСаныч
Вопросов: 3
Ответов: 118
Профиль | | #4
Добавлено: 10.04.11 21:24
Bitmap в Image => Dim pic As Bitmap
*Bitmap в Image => Dim pic As Image
Номер ответа: 5
Автор ответа:
DrKillJoy
Вопросов: 10
Ответов: 18
Профиль | | #5
Добавлено: 11.04.11 14:45
Я после DrawImage, могу еще раз воспользоваться DrawImage и нарисовать маленький рисунок, точку или линию.
И эти точки не как не занесутся в переменную img, то есть при получении цвета точки, цвет будет браться, как из ("C:\door.bmp" и не будет смотреть на новые изменения.
Может я что-то не понимаю??? Но оно не работает!!!
ПОМОГИТЕ!!! ПОМОГИТЕ!!! ПОМОГИТЕ!!! ПОМОГИТЕ!!! ПОМОГИТЕ!!!
Номер ответа: 6
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #6
Добавлено: 11.04.11 16:03
Вот ты рисуешь рисунок:
Номер ответа: 7
Автор ответа:
DrKillJoy
Вопросов: 10
Ответов: 18
Профиль | | #7
Добавлено: 13.04.11 10:44
Долго не мог попасть на сайт!!!
AgentFire, спасибо!!! Ты мне очень помог!!!
Твой пример действительно работает.
СПАСИБО!!!
Номер ответа: 8
Автор ответа:
mihejka
Вопросов: 0
Ответов: 2
Профиль | | #8
Добавлено: 21.04.11 14:23
Вот такая проблема:
 im g As BufferedGraphicsContext = BufferedGraphicsManager.Current
 im buf As BufferedGraphics
With frmForm1
buf = g.Allocate(.PictureBox1.CreateGraphics, .PictureBox1.DisplayRectangle)
buf.Graphics.FillRectangle(Brushes.White, .PictureBox1.DisplayRectangle)
buf.Graphics.DrawEllipse(New Pen(Brushes.Black, 3), 5, 5, 280, 280)
buf.Graphics.DrawPie(New Pen(Brushes.Black, 3), 5, 5, 280, 280, 270 - .TrackBar1.Value, .TrackBar1.Value * 2)
buf.Graphics.FillPie(Brushes.LightGreen, 5, 5, 280, 280, 270 - .TrackBar1.Value, .TrackBar1.Value * 2)
buf.Graphics.DrawPie(New Pen(Brushes.Black, 2), 125, 125, 40, 40, 270 - .TrackBar1.Value, .TrackBar1.Value * 2)
buf.Render()
End With
1. При вызове этой процедуры событием Click основного меню: изображение появляется на долю секунды и исчезает;
2. При сворачивании формы и последующем ее раворачивании - изображение исчезает;
3. При вызове этой процедуры событием TrackBar1_Scroll - работает нормально.
Чайник - признаюсь... Вешаюсь: что не так? подскажите!
Номер ответа: 9
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 21.04.11 14:32
> что не так?
Не рисуешь на PictureBox.Image
Номер ответа: 10
Автор ответа:
mihejka
Вопросов: 0
Ответов: 2
Профиль | | #10
Добавлено: 22.04.11 09:21
Для AgentFire - С П А С И Б О !!!