Как определить интенсивность красного точки пикчербокса?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Makavelli
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 17.12.2004 (Пт) 4:01

Как определить интенсивность красного точки пикчербокса?

Сообщение Makavelli » 30.06.2005 (Чт) 22:26

Помогите! Есть пикчербокс, в нем загружена какая-то картинка. Мне надо узнать сколько красного (от 1 до 255) в цвете пикселя этой картинки.
Другими словами: какого цвета определенный пиксель пикчербокса.
Главное - чтобы не было занижено чувство собственного достоинства.

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 30.06.2005 (Чт) 22:35

c=Picture1.Point (x,y) 'возвращает цвет точки
r=c mod 256 'компонента красного
Листинги не горят!

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 30.06.2005 (Чт) 22:51

Ну хоть уже и написали, всё равно добавлю. Может это понятнее будет. :roll: :wink:

Код: Выделить всё
Option Explicit
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Sub Form_Load()
Picture = LoadPicture("C:\windows\Рододендрон.bmp")
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim PIX As Long
PIX = GetPixel(Me.hdc, X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
       
Debug.Print "Красного " & PIX Mod 256
Debug.Print "Зелёного " & PIX Mod 256
Debug.Print "Синего " & PIX Mod 256

End Sub


http://nsft.narod.ru/Programming/colprog.htm

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 30.06.2005 (Чт) 23:20

Код: Выделить всё
Debug.Print "Красного " & PIX Mod 256
Debug.Print "Зелёного " & PIX Mod 256
Debug.Print "Синего " & PIX Mod 256

Может быть, так:
Код: Выделить всё
Debug.Print "Красного " & PIX Mod 256
Debug.Print "Зелёного " & (PIX\256 ) mod 256
Debug.Print "Синего " & (PIX\65536) mod 256
Листинги не горят!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 167

    TopList