Страница: 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 - С П А С И Б О !!!