Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Point color from stdPicture Добавлено: 20.10.06 20:27  

Автор вопроса:  HACKER
 Dim Pic As StdPicture
 Set Pic = LoadPicture("file.bmp")

Как узнать цвет определенного пикселя ?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

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

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

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

Ответить

Номер ответа: 3
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #3
Добавлено: 22.10.06 01:58
.NET.:)

[Visual Basic]
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) :)

COLORREF GetPixel(
  HDC hdc,    // handle to DC
  int nXPos,  // x-coordinate of pixel
  int nYPos   // y-coordinate of pixel
);

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 22.10.06 17:02
2 vito, спасибо, то что надо.

Ответить

Номер ответа: 5
Автор ответа:
 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



ICQ: 334781088 

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

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 26.10.06 00:17
ок, как из StdPicture вынуть цвет пикселя?

Есть идея в байтовый массив перегнать, так как я полнял 1 байт и будет одна составная цвета RGB. Т.е. сдвигаться на 3... ну как-то это глупо... Неужели с помощью api нельзя...

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

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

Ответить

Номер ответа: 9
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #9
Добавлено: 26.10.06 19:59
как насчет GetDiBits?

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 27.10.06 04:32
Пасиб, создание DC помогло...

        Dim Pic1 As StdPicture
        Set Pic1 = LoadPicture(Form1.cd.FileName)
        Myhdc = CreateCompatibleDC(0&;)
        SelectObject Myhdc, Pic1.Handle
        tmpColor1 = GetPixel(Myhdc, 10, 10)


хотя странно показалось, что напрямую нельзя...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам