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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2010, 10:32   #1
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию Цветовая палитра

Пролистав сотню статей на эту тему, так и не нашел ответ на свой вопрос: "как получить массив цветов Цветовой Палитры, для конкретного Битмапа?" , не цвета, которые на нем нарисованны, а цвета палитры, которую он использует.

например, чтоб заполнился массив
Colors:array{R} of array{G} of array{B} of boolean;
в котором true будет означать, что в данной цветовой паллитре используется этот цвет)
Biohazard вне форума Ответить с цитированием
Старый 30.07.2010, 10:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не цвета, которые на нем нарисованны, а цвета палитры, которую он использует.
А какая разница?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 10:52   #3
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию

разница в том, что белый рисунок, с черной точкой по середине, не обязательно использует двухцветовую палитру
Biohazard вне форума Ответить с цитированием
Старый 30.07.2010, 11:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну согласен, пройдись по пикселям двумя циклами, получил пиксель - проверьв определенном массиве, есть ли такой цвет, если нет добавляй в массив, так получишь набор цветов (Гамма кажись называется)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 11:23   #5
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию

если пойду по пикселям в рисунке, то получу не его Палитру, а только те цвета из его палитры, которые задействованы в нем, а если вы имеете ввиду, пройтись по пикселям палитры, то где взять их набор? и в каком определенном масиве мне проверять?, возможно вы не поняли мой вопрос? "Палитра - набор цветовых значений, которые может использовать изображение, вид палитры зависит от pixelformat битмапа(1 4 8 16 24 32), каждый из которых содержит набор цветов, этот набор цветов в формате РГБ мне и нужно получить)"
Biohazard вне форума Ответить с цитированием
Старый 30.07.2010, 12:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага. Знач я действиетльно тебя не понял.
Image1.Picture.Bitmap.Palette типа HPALETTE. С этим хендлом и работай. Через GetPaletteEntries
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 12:43   #7
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию

спасибо, я думаю это действительно то, что нужно, но не могли бы вы показать на примере, как она работает?) например, как получить третий цвет палитры)
Biohazard вне форума Ответить с цитированием
Старый 30.07.2010, 12:58   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Особо не вникал но:
Код:
var pe:PALETTEENTRY;
begin
 GetPaletteEntries(Image1.Picture.Bitmap.Palette,0,255*255*255,pe);
 caption:=IntToStr(pe.peRed);
end;
http://vsokovikov.narod.ru/New_MSDN_...tteentries.htm
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Палитра _-Re@l-_ Общие вопросы Delphi 8 22.06.2010 11:39
Цветовая палитра в DBGrid Grom48 БД в Delphi 3 10.12.2009 21:07
Цветовая палитра и "Панель управления" Xaerl Общие вопросы Delphi 5 31.05.2008 16:43
Цветовая палитра Stanislav Помощь студентам 3 09.12.2007 03:46