Страница: 1 |
Страница: 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-сайт:
Профиль | | #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
Разработчик 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-сайт:
Профиль | | #9
Добавлено: 26.10.06 19:59
как насчет GetDiBits?
Номер ответа: 10
Автор ответа:
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)
хотя странно показалось, что напрямую нельзя...