Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Попиксельное работа с изображением, GetPixel:) 
V
    Опции темы
eldar22
Дата 23.9.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 22.9.2008

Репутация: нет
Всего: 1



Здравствуйте!
Вот у меня возник такой  вопрос
Я пользовался поиском по форуму, но нигде не нашёл ответа.
Хотел бы узнать возможно ли  пробежаться по изображение которое находиться в PictureBox и записать данные цвета всех пикселей этого изображение, а вернее HEX значение цвета(пример FFFFFF-белый цветsmile )
Вот пример только там бегает курсор по изображение, а надо программно. 

Код

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 Form_Load()
Timer1.Interval = 10
End Sub
Private Sub Timer1_Timer()
GetCursorPos z
screendc = CreateDC("DISPLAY", "", "", 0&)
Text1 = Hex(GetPixel(screendc, z.x, z.y))
Picture1.BackColor = GetPixel(screendc, z.x, z.y)
DeleteDC (screendc)
End Sub


PM MAIL WWW   Вверх
~FoX~
Дата 24.9.2009, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



eldar22, 
Ну дык замени свой z.x и z.y на координаты и все...
Код

dim x, y as integer

for x = 0 to 100
  for y = 0 to 100
    screendc = CreateDC("DISPLAY", "", "", 0&)
    Text1 = Hex(GetPixel(screendc, x, y))
    Picture1.BackColor = GetPixel(screendc, x, y)
    DeleteDC (screendc)
  next y
next x



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
eldar22
Дата 24.9.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 22.9.2008

Репутация: нет
Всего: 1



~FoX~, 
Спасибо большое!
PM MAIL WWW   Вверх
Sanaff
Дата 24.9.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: 1
Всего: 1




Так чуть получше

Код

dim x, y as integer

screendc = CreateDC("DISPLAY", "", "", 0&) 'вынесем за цикл лишнее - быстрее будет
screendc = GetDC(0) 'можно так


for x = 0 to 100
  for y = 0 to 100
    Text1 = Hex(GetPixel(screendc, x, y))
    Picture1.BackColor = GetPixel(screendc, x, y)
  next y
next x

DeleteDC (screendc) 'вынесем за цикл лишнее - быстрее будет


Странный код немного. в результате в Text1 и Picture1 будет последнее полученное  значение (x=100 y=100)
--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
~FoX~
Дата 29.9.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



eldar22, сори, Sanaff, прав, вынести CreateDC и DeleteDC за цикл....Это я вообще то бреданул слегка.... smile 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.