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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RGB преобразовать в черно-белый, RGB в WB 
:(
    Опции темы
Sofist
Дата 11.9.2005, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите!!! есть RGB код определенного цвета... Допустим его составляющие красный - R=58, зеленый - G=67, голубой - B=24 как его преобразовать в черно-белый??? С помощью каких арифметических действий??? Заранее благодарен.
PM MAIL   Вверх
Akina
Дата 11.9.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



.3*Red + .59*Green + .11*Blue

Однако это - формула 1) преобразования по эквиваленту яркости 2) она сильно зависит от настроек монитора.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
super-vadim
Дата 11.9.2005, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вроде бы это тебе нано. Функция возвращает ч/б цвет.
smile
Код
Private Declare Function ColorHLSToRGB Lib "Shlwapi.dll" (ByVal wHue As Integer, ByVal wLuminance As Integer, ByVal wSaturation As Integer) As Long
Private Declare Function ColorRGBToHLS Lib "Shlwapi.dll" (ByVal clrRGB As Long, pwHue As Integer, pwLuminance As Integer, pwSaturation As Integer) As Long

Private Function RGBToBlackWhite(ByVal ColorRGB As Long) As Long
    Dim ch As Integer
    Dim cl As Integer
    Dim cs As Integer
    dl = ColorRGBToHLS(ColorRGB, ch, cl, cs)
    RGBToBlackWhite = ColorHLSToRGB(160, cl, 0)
    'RGBToBlackWhite = RGBToBlackWhite Mod 256 'Если ч/б цвет нужно положить в 1 байт а не в 4-ре.
End Function

Private Sub Command1_Click()
    ColBW = RGBToBlackWhite(RGB(58, 67, 24))
End Sub


PM MAIL WWW   Вверх
cardinal
Дата 11.9.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Ищи в инете по слову dithering, если не найдешь помогу...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Gannibal
Дата 11.9.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Конвертирование цветной картинки в черно-белую
Эта пример конвертирует цветную картинку в черно-белую с коэффицентами принятыми в телевидении.
На форме необходимо разместить кнопку и 2 PictureBox с именами pic1 и pic2 одинакового размера. Свойство ScaleMode у обоих надо выставить в 3-Pixel. В pic1 загрузите любое изображение и нажмите на кнопку.
--------------------------------------------------------------------------------
Код

Private Sub Command1_Click()
   Dim b1 As Byte, b2 As Byte, b3 As Byte
   Dim lColor&, x&, y&, Gray!

   pic2.Cls
   For x = 0 To pic1.ScaleWidth
      For y = 0 To pic1.ScaleHeight
         lColor = pic1.Point(x, y)
         b1 = lColor And &HFF 'Красный
         b2 = (lColor \ 256) And &HFF 'Зеленый
         b3 = (lColor \ 65536) And &HFF 'Синий
         Gray = b1 * 0.3 + b2 * 0.59 + b3 * 0.11
         lColor = RGB(Gray, Gray, Gray)
         pic2.PSet (x, y), lColor
      Next y
      DoEvents
   Next x
End Sub  


взято с http://vbnet.ru


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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