Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Беда! Народ, помогайте! Добавлено: 30.04.03 23:36  

Автор вопроса:  logout
Разбираю один интересный примерчик, в нём изображение
с видеокамеры поступает в Picture таким вот образом:
Picture1.hwnd
а как из него узнать цвет определенного пиксела?
Стандартные методы не работают.
Может кто подскажет...

Ответить

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

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



Вопросов: 86
Ответов: 920
 Профиль | | #1 Добавлено: 01.05.03 00:52

a primerchik mogesh1 poslat`?

aasoft@hotmail.com

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 01.05.03 04:34
Да,действительно...На примерчик было бы интересно взглянуть...

Ответить

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



Вопросов: 34
Ответов: 312
 Web-сайт: msvprogs.narod.ru
 Профиль | | #3
Добавлено: 01.05.03 06:09

Скиньте мне тоже!!! mazovsergey@mail.ru

Ответить

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



Вопросов: 1
Ответов: 37
 Профиль | | #4 Добавлено: 01.05.03 09:04

 Дело в том, что для работы с таким кодом нужно иметь хоть один capture device,
смысл примера в том, что он прога соединяется с capture драйвером и укладыевает катинку
куда, где есть hwnd (в форму,Picture и т.д.).

Синтаксис функции такой (хотя это Вам мало о чём скажет) :
lwndC = capCreateCaptureWindowA(lpszName, WS_CHILD Or WS_VISIBLE, 0, 0, 0, 0, Picture1.hwnd, 0)
А моя задача определить цвет отдельного пиксела из полученного окна предосмотра.

Как то можно связать Picture1.hwnd и Picture.hdc?

Если hwnd это область памяти, то как считать значения из памяти?
Моё личное мнение - hwnd всё таки указывает на область памяти, Так как значения во
время работы программы она принимает очень уж похожие на адрес в памяти.

Ответить

Номер ответа: 5
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #5 Добавлено: 01.05.03 09:38

Народ, подскажите пожалуйста примеры использования этого hwnd и примеры чтения памяти по указанному адресу.

Заранее признателен!

Ответить

Номер ответа: 6
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #6 Добавлено: 01.05.03 19:04

u mya est` kamera, myl` primeru!

A tam, moget razberus`, otvechu!!

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 01.05.03 21:35

А если GetPixel ?

Ответить

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



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #8
Добавлено: 02.05.03 05:41

Да, точно! GetPixel, но вот как преобразовать QBColor в RGB не знаю. Если кто знает, подскажите!

Ответить

Номер ответа: 9
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #9 Добавлено: 02.05.03 16:45

Ты что, не знаешь, как написать функцию AntiRGB??

Если я правильно понял, тебе нужно это:

Type RGBSB
 cR As Byte
 cG As Byte
 cB As Byte
End Type

Function AntiRGB_A(Vi As Long) As RGBSB
AntiRGB_A.cR = (Vi Mod 256)
AntiRGB_A.cG = (Vi Mod 65536) \ 256
AntiRGB_A.cB = (Vi Mod 16777216) \ 65536
End Function

Ответить

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



Вопросов: 1
Ответов: 37
 Профиль | | #10 Добавлено: 05.05.03 20:25
Никакого GetPixel ! Мы же говорим о хендле. Так как хендел, это участок памяти в ядре системы, то нам нужно просто взять и перекинуть байты из памяти по адресу хендла (и его размеру) в массив для обработки. Но одна беда - моя NT чуть что не то (или не туда) - "Память по адресу XXXXXXXXX не может быть "read" !". Это просто прискорбно!

Ответить

Страница: 1 |

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



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