Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Point color from stdPicture
     
    
Добавлено: 20.10.06 20:27
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     HACKER
 HACKER
      
       
  
 Dim Pic As StdPicture
 
    
 Set Pic = LoadPicture("file.bmp")
Как узнать цвет определенного пикселя ?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 10
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Viper
 Viper



ICQ: 249094859 
Вопросов: 0
Ответов: 310
      
 Профиль |  | #1
       
Добавлено:  21.10.06 07:27
       
    
       
  
Надо рыть в сторону свойства Handle. Есть такое подозрение
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #2
       
Добавлено:  21.10.06 20:41
       
    
       
  
Та я тоже думал апишка есть, которая по хенделу бы возвратила... но я что-то не нашел  
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: vito
 vito









Разработчик Offline Client
Вопросов: 23
Ответов: 879
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  22.10.06 01:58
       
    
       
  
.NET. 
     
Public Sub GetPixel_Example(e As PaintEventArgs)
' Create a Bitmap object from an image file.
Dim myBitmap As New Bitmap("Grapes.jpg" 
' Get the color of a pixel within myBitmap.
Dim pixelColor As Color = myBitmap.GetPixel(50, 50)
' Fill a rectangle with pixelColor.
Dim pixelBrush As New SolidBrush(pixelColor)
e.Graphics.FillRectangle(pixelBrush, 0, 0, 100, 100)
End Sub
С/С++ (Windows GDI)  
  HDC hdc,    // handle to DC
  int nXPos,  // x-coordinate of pixel
  int nYPos   // y-coordinate of pixel
);
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #4
       
Добавлено:  22.10.06 17:02
       
    
       
  
2 vito, спасибо, то что надо.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #5
       
Добавлено:  24.10.06 22:44
       
    
       
  
Dim Pic2 As StdPicture
 
    
Set Pic2 = LoadPicture("file.bmp" 
tmpColor1 = GetPixel(Pic2.Handle, 10, 10)
Возвращает -1...
Way?
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: LamerOnLine
 LamerOnLine



ICQ: 334781088 
Вопросов: 108
Ответов: 2822
      
 Профиль |  | #6
       
Добавлено:  25.10.06 11:23
       
    
       
  
Опять начинаете хэндлы путать. Хэндл пикчера и хэндл контекста устройства - разные вещи.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #7
       
Добавлено:  26.10.06 00:17
       
    
       
  
ок, как из StdPicture вынуть цвет пикселя?
 
    
Есть идея в байтовый массив перегнать, так как я полнял 1 байт и будет одна составная цвета RGB. Т.е. сдвигаться на 3... ну как-то это глупо... Неужели с помощью api нельзя...
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: LamerOnLine
 LamerOnLine



ICQ: 334781088 
Вопросов: 108
Ответов: 2822
      
 Профиль |  | #8
       
Добавлено:  26.10.06 10:58
       
    
       
  
А почему бы не создать DC и отрендерить, а затем уже делать с ним че те надо. С олешными пикчерами вообще довольно геморно. Хотя может если в MSDN покопаться...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: Victor
 Victor




ICQ: 345743490 
Вопросов: 42
Ответов: 385
      
 Web-сайт:  
 Профиль |  | #9
      
Добавлено:  26.10.06 19:59
       
    
       
  
как насчет GetDiBits?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #10
       
Добавлено:  27.10.06 04:32
       
    
       
  
Пасиб, создание DC помогло...
 
    
        Set Pic1 = LoadPicture(Form1.cd.FileName)
        Myhdc = CreateCompatibleDC(0& 
        SelectObject Myhdc, Pic1.Handle
        tmpColor1 = GetPixel(Myhdc, 10, 10)
хотя странно показалось, что напрямую нельзя...