Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TImage сделать черно-белым


Alexey ©   (2008-07-16 11:13:00) 

Уважаемые мастера, подскажите как сделать это программно?


brother   (2008-07-16 14:02:00) [1]

> (16.07.08 13:16)


> (16.07.08 13:35)

дольше однако)))


Alexey   (2008-07-16 13:35:00) [2]

Все, сделал) спасибо!


{RASkov}   (2008-07-16 13:16:00) [3]

> [11] Alexey   (16.07.08 13:12)
> можно конвертировать, но только 48 картинок долго

меньше секунды :)


Alexey   (2008-07-16 13:12:00) [4]

Не, можно конвертировать, но только 48 картинок долго, я уже думал над этим, хотя ведь можно программно сохранять bmp, делать его ЧБ,а потом удалять эти временные bmp.


{RASkov}   (2008-07-16 12:51:00) [5]

> [9] Alexey   (16.07.08 12:28)
> Реально?

А почему нет? конечно реально.
Простой вариант: иконки конвертнуть в битмапы. Или твоя программа работает именно с форматом ICO?


Alexey   (2008-07-16 12:28:00) [6]

2 {RASkov} :

ну сделано так: есть 48 объектов TImage на форме, в каждое из них загружено цветное изображение в формате ICO (загружено в среде, не программно).

В зависимости от разных параметров от одного до 48 TImage должны меняться на черно-белые.

Реально?

2 DVM:

Преобразование к оттенкам серого заключается в получении яркости каждой точки по известной формуле (Y:=0.3*R+0.59*G+0.11*B) и последующем копировании полученного значения по все три канала (R=G=B:=Y).

Вроде вот так)


DVM   (2008-07-16 12:23:00) [7]


> Renegat   (16.07.08 11:24) [2]


> Сложить R, G и B каналы, поделить полученное на три, и заполнить
> получившимся значением эти каналы.

Это можно, но не совсем верно. Есть специальная формула для пересчета. Там коэффициенты для разных каналов разные.


{RASkov}   (2008-07-16 12:21:00) [8]

> [6] Alexey   (16.07.08 12:02)
> картинки у меня в формате .ico

Ага, TIcon, а в [1] для TBitmap'а

> В контейнере и image ничего нет, он лежит на панели, растянут.

Кого-кого на панели растянули? :)

Контейнер у имагеса это - Image. Picture

Короче у тебя кто-то растянут на панели, а в это время ты хочешь сделать чернобелым TImage.
Как тебя понимать?


Alexey   (2008-07-16 12:02:00) [9]

Слушай, а может это от того, что картинки у меня в формате .ico?
В контейнере и image ничего нет, он лежит на панели, растянут.


{RASkov}   (2008-07-16 11:54:00) [10]

> делают Image невидимым...(

Фантастика :)

> [4] Alexey   (16.07.08 11:30)

Показывай как делал и говори что в контейнере у имагеса лежит... т.е. что загружено в Image (какого формата рисунок).


Alexey   (2008-07-16 11:30:00) [11]

Почему-то оба способа делают Image невидимым...(


Renegat   (2008-07-16 11:26:00) [12]

> Image.Picture.Bitmap.Monochrome:=True;

Ух ты, ё-моё... я всегда недооценивал ВЦЛ =(


Renegat   (2008-07-16 11:24:00) [13]

Сложить R, G и B каналы, поделить полученное на три, и заполнить получившимся значением эти каналы. Вынужден огорчить - готовой функции, как в предыдущем треде, в GDI нет.


{RASkov}   (2008-07-16 11:23:00) [14]

> черно-белым

Может: Image.Picture.Bitmap.Monochrome:=True;
? :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо