powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Цвет пикселя из изображения
16 сообщений из 16, страница 1 из 1
Цвет пикселя из изображения
    #34040259
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть картинка, в файле.
надо узнать цвет определенного пикселя в ней.

Подскажите как???
Цвет точки на экране уже могу узнать,

автор
Option Compare Database
Private Declare Function CreateDC& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Any)
Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long


Private Type POINTAPI
x As Long
y As Long
End Type
Dim z As POINTAPI


Private Sub Кнопка0_Click()
GetCursorPos z
screendc = CreateDC("DISPLAY", "", "", 0&)
Поле2.Value = Hex(GetPixel(screendc, z.x, z.y))
DeleteDC (screendc)
End Sub




но мне надо именно из файла
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34040544
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если загрузить рисунок в PictureBox и через его DC узнать?
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34040563
профан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имхо по файлу "Цвет пикселя из изображения" не узнать ... ибо он зависит от текущих свойств экрана (разрешение экрана и качество цветопередачи)
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34040748
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
профанИмхо по файлу "Цвет пикселя из изображения" не узнать ... ибо он зависит от текущих свойств экрана (разрешение экрана и качество цветопередачи)
Однако пи всем при этом у каждого пикселя есть свои фиксированные координаты в цветовом пространстве (RGB, например).
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34040783
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbekа если загрузить рисунок в PictureBox и через его DC узнать?
Просто рисунков много... около 60-80
и пикселей, по которым идет проверка будет около 10-20
и это для каждого изображения.. :(
если загружать в PictureBox я думаю намного дольше будет идти процесс..

а от экрана никак не зависит....
ведь файл не меняется от экрана к экрану..

формат изображения .jpg
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34040945
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо грузить в пикчербокс, либо разобраться с форматом jpeg. Первое проще.
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34042404
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyЛибо грузить в пикчербокс, либо разобраться с форматом jpeg. Первое проще.

А можно небольшой пример.....
пожалуйста...
уже перерыл весь форум...
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34043160
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в коде формы объявляте
Код: plaintext
1.
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
и потом код получения цвета из PictureBox
Код: plaintext
1.
MsgBox Hex(GetPixel(Picture1.hdc,  0 ,  0 ))
выдает в шестнадцитиричном коде цвет пикселя в точке 0,0 элемента Picture1
на сайте www.allapi.net есть прога API-Guide, в котором куча примеров по работе с API на VB, справочная и т.д.
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34043287
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbekв коде формы объявляте
Код: plaintext
1.
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
и потом код получения цвета из PictureBox
Код: plaintext
1.
MsgBox Hex(GetPixel(Picture1.hdc,  0 ,  0 ))
выдает в шестнадцитиричном коде цвет пикселя в точке 0,0 элемента Picture1
на сайте www.allapi.net есть прога API-Guide, в котором куча примеров по работе с API на VB, справочная и т.д.

а не подскажите тогда как получить hdc ?

вот мой код, где ошибка или чего не хватает?
авторOption Compare Database
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long


Private Sub Кнопка2_Click()
Dim hdcRef As Long

Set img = CreateObject("WIA.ImageFile")
img.LoadFile "p:\ISSLED\issled_result\1.jpg"
Set v = img.FileData

Set Image3.Picture = v.Picture

'GetCursorPos z
'screendc = CreateDC("DISPLAY", "", "", 0&)
'screendc = CreateDC(Image7, "", "", 0&)
'Поле2.Value = Hex(GetPixel(screendc, 10, 10))
'Поле2.Value = Hex(GetPixel(screendc, z.x, z.y))
'Поле2.Value = Hex(GetPixel(screendc, 10, 10))
'Поле2.Value = Hex(GetPixel(screendc, z.x, z.y))
'DeleteDC (screendc)
'image_dc = CreateDC(Image7.Parent.hdc, "", "", 0&)
'Поле2.Value = Hex(GetPixel(Image7.hdc, 10, 10))
'DeleteDC (image_dc)

hdcRef = GetDC(Image3.Parent.hdcWnd)

MsgBox Hex(GetPixel(hdcRef, 0, 0))
End Sub
спасибо
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34043319
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо Image используй PictureBox, у него есть свойство hdc.
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34043621
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно какой нибудь файл примера?
у меня ничего не получаеться ((
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34044268
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо Image используйте контрол Picture1 у этого контрола есть свойство hDC
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34044449
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне это надо в аксесовской форме....
создал форму, на ней поместил Рисунок.

создал кнопку и приклике на нее обр. события

Option Compare Database
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Private Sub Кнопка2_Click()
MsgBox Hex(GetPixel(Picture8.hdc, 0, 0))
End Sub

Выдает "Method or data member not found"

где ошибка???
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34044593
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я про Picture в Visual basic'е говорил, а если в MS Access, тогда вам нужно достать hDc этого контрола, для этого нужно получить hWnd окна MS Access, затем перебирая все дочерние окна дойти до нужного вам элемента
...
Рейтинг: 0 / 0
Цвет пикселя из изображения
    #34044647
KuznetsovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упс......
да уж....
попал...
а не подскажете как???
никогда этим не занимался....
а проект интересный попался...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Цвет пикселя из изображения
    #36859337
Bibop182
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В формах Access у элементов вообще нет собственных DC.
Все элементы, будь то кнопки или рисунки, рисуются на одной поверхности для простоты и отдельные контексты для них не создаются
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Цвет пикселя из изображения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]