Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2008, 22:56   #1
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
Вопрос Инверсия цвета

Доброго времени суток уважаемые программисты.
У меня вот проблема.
Значит в есть в Image рисунок bmp (8-24 бита). Но мне надо инверсировать цвет какой-нить точки. Делал так:

Код:
image1.Canvas.Pixels[n,m]:= not image1.Canvas.Pixels[n,m];
Но оно инверсирует неправильно. То есть размазня получается

Как это релизовать чтобы без размазни?

Заранее спасибо.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 07.05.2008, 23:37   #2
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
По умолчанию

надо написать так
Код:
image1.Canvas.Pixels[n,m]:= #FFFFFF- image1.Canvas.Pixels[n,m];
так если я ничего не перепутал
delphin100 вне форума Ответить с цитированием
Старый 08.05.2008, 14:33   #3
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Попробую, ели чё, отпишусь.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 08.05.2008, 14:38   #4
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Спасибо, ОНО. Тольо я FFFFFF заменил в калькуляторе на 16777215 и всё ок. +. Я даже и не додумался о такой идеи
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 08.05.2008, 15:12   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Но оно инверсирует неправильно. То есть размазня получается
Тот способ подходит, если применять его к типу byte: byte:=not byte;
Предварительно разбив цвет на RGB составляющие.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 08.05.2008, 16:11   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

По сути не $FFFFFF а TColor кажется там $7FFFFF. Так вот это тоже число только в 24 битах в 16 системе. Инверсия по сути, как я понимаю, допустим было 00010110 ( 1 байт - 8 бит ) стало после инверсии 11101001, думаю заметна разница Или еще вариант, но я так чисто теоретически рассуждаю, как и было сказано разбить на составляющие R G B а потом Hi(BYTE) = 255 вычесть значение составляющей. Например нассышенность красного R = 50 тогда после инверсии R = 255 - 50 = 205. А вообще если бы вы потрудились поискать в сети... 100% нашли то что вам надо
BOBAH13 вне форума Ответить с цитированием
Старый 08.05.2008, 16:29   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Или еще вариант, но я так чисто теоретически рассуждаю, как и было сказано разбить на составляющие R G B а потом Hi(BYTE) = 255 вычесть значение составляющей. Например нассышенность красного R = 50 тогда после инверсии R = 255 - 50 = 205
Ну так это тоже самое R:=not R; R = 255 - R;
Выше привели нормальный вариант, и не надо на составляющие разбивать:
Color:=clWhite{= $FFFFFF, = 16777215} - Color;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инверсия Witaliy Общие вопросы Delphi 2 12.05.2008 19:23
DBGrid цвета Steel_rat БД в Delphi 9 01.02.2008 11:06
Формат цвета xTANATOSx Общие вопросы Delphi 14 02.11.2007 20:22
Изменение цвета Artem Общие вопросы Delphi 5 12.07.2007 09:07
цвета Toxa Общие вопросы Delphi 3 20.04.2007 12:03