18.06.2018, 00:49 [+3 UTC]
в нашей команде: 2 848 чел. | участники онлайн: 2 (рекорд: 21)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
17.06.2018, 22:18

Последний вопрос:
17.06.2018, 23:52

Последний ответ:
17.06.2018, 21:56

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

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

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

Наша кнопка:

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

Отзывы о нас:
22.06.2011, 15:16 »
Ханинёв Пётр Валерьевич
Оптимальный вариант решения задачи. Подробные комментарии. [вопрос № 183693, ответ № 267810]
14.04.2010, 16:34 »
ArtSova
Spasibo za onvet! Programma deistvitelno horoshaya, prosto ya navernoe ne vsemi funkciyami umeyu polzovatsya ))) [вопрос № 177790, ответ № 260803]
12.08.2010, 21:14 »
ZimBaBu
Спасибо! Начал сбоить порт на одном из хабов. Проблема решена! [вопрос № 179711, ответ № 262794]

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

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

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

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

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 273
Асмик Гаряка
Статус: Советник
Рейтинг: 55
mklokov
Статус: 6-й класс
Рейтинг: 23

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

Консультация онлайн # 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.14399 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018