22.01.2019, 12:32 [+3 UTC]
в нашей команде: 3 344 чел. | участники онлайн: 5 (рекорд: 20)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.65 (20.01.2019)
JS-v.1.31 | CSS-v.3.35

Общие новости:
01.01.2019, 13:54

Форум:
14.01.2019, 10:08

Последний вопрос:
21.01.2019, 23:17
Всего: 148545

Последний ответ:
22.01.2019, 12:04
Всего: 257629

Последняя рассылка:
22.01.2019, 11:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
06.03.2010, 00:29 »
Даниил Цветков
Содержательный и полный ответ. Спасибо большое [вопрос № 177048, ответ № 259911]
24.04.2014, 09:13 »
Пупкин Василий Эдуардович)
Зачет) [вопрос № 187810, ответ № 272732]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 403
puporev
Статус: Профессионал
Рейтинг: 292
Степанов Иван /REDDS
Статус: 4-й класс
Рейтинг: 3

Перейти к консультации №:
 

Консультация онлайн # 66067
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Antares
Отправлена: 08.12.2006, 09:22
Поступило ответов: 2

Здравствуйте, все!
Вот такая задачка:
У меня выводятся несколько картинок в StringGrid.
Нужно менять цвет для определенных областей картинки. Например: в исходной картинке область была красная - ее надо заменить на любой другой (желтый, зеленый, ... выбирать самому). Исходную картинку (файл) трогать не надо.
Я думаю, надо работать с палитрой - изменять цвет в палитре. Как в Paint-е - ту часть палитры, которая была определена, например красным, заменить на другой (изменить соотношение RGB). Тогда по идее автоматически и будут меняться цвета в картинке.
Как это сделать?
Заранее благодарен всем за ответ.
Если непонятно выразился - пишите, постораюсь уточнить.

Состояние: Консультация закрыта

Ответ # 130655 от Сухомлин Кирилл Владимирович

Здравствуйте, Antares!
Объекты типа BitMap работают в непалитровых режимах только для 16 или 256 цветов. Если для вас это слишком мало, то можете воспользоваться попиксельной работой с картинками после загрзуки. Написать одну процедуру. Через Pixels[], конечно, не быстро но для одной обработки на загрузке пойдет.
Можно, конечно, воспользоваться TBitMap.ColorTable, но не совсем понятно, на какую именно таблицу цветов будет возвращен указатель... может быть, на системную. А ее менять не стоит и вам никто не даст. Да и формат знать надо... В MSDN про это что-то ничего не написано.
Можно еще сделать маскирование с прозрачностью по данному цвету, а фон залить другим... но это уже для настоящих, кхм, самураев =)

Приложение:


Консультировал: Сухомлин Кирилл Владимирович
Дата отправки: 08.12.2006, 17:36

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 130767 от KiberZero

Здравствуйте, Antares!

Если я правильно понял,вы загружаете картинку в окно TStringGrin,а для изменения
области цвета хотите воспользоваться ячейками TStringGrin. Я предлагаю вам воспользоваться
методом FillRect(закрашивает поверхность канвы).Единственное,нужно будеть зафиксировать
область цвета,чтобы при очередном действии по этой же области картинки цвет не стирался.
Останется только написать массив для области окна(картинки) TStringGrin,тогда вы сможете менять цвет
любой области картинки.В приложении пример с фиксированными координатами закрашиваемой области.
Для выбора цвета применён компонент TColorDialog.
Удачи!

Приложение:


Консультировал: KiberZero
Дата отправки: 09.12.2006, 17:53

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15159 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.65 от 20.01.2019
Версия JS: 1.31 | Версия CSS: 3.35