Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

TColor и RGB   Найти похожие ветки 

 
Ajax   (2001-10-31 17:50) [0]

Пишу прогу, анализирующую процентное отношение R, G и B координат в картинке. Возникли некоторые трудности.
Как из TColor выцепить отдельно R, G и B координаты. И еще, как RGB перевести в CMYK. Возиожно у кого-нибудь уже есть нароботки в этой области?


 
Cobalt   (2001-10-31 23:26) [1]

Насчёт RGB
Delphi Help
TColor type
If you specify TColor as a specific 4-byte hexadecimal number instead of using the constants defined in the Graphics unit, the low three bytes represent RGB color intensities for blue, green, and red, respectively. The value $00FF0000 represents full-intensity, pure blue, $0000FF00 is pure green, and $000000FF is pure red. $00000000 is black and $00FFFFFF is white.


 
Raptor   (2001-11-01 00:24) [2]

Привет!

2Ajax
А зачем тебе TColor. Если у тебя картинка 24-битная, то делаешь так:

type
P24BitArray=^T24BitArray;
T24BitArray=array [0..65535] of TRGBTriple;

Потом в программе делаешь так:

Var b:TBitMap;
Scan:T24BitArray;
R,G,B:=Byte;
.......................
Scan:=b.ScanLine[i];//Получаешь адрес i-вой строки изображения
//(нумеруются от 0) и накладываешь на нее свою маску.
.................................
//Здесь j-индекс элемента изображения в строке
R:=Scan[j].rgbtRed;
G:=Scan[j].rgbtGreen;
B:=Scan[j].rgbtBlue;
................................
Это самый быстрый способ извлечение составляющих цвета.
А насчет CMYk, то по этой теме полно информации в инете, надо только поискать.

Raptor.


 
Ajax   (2001-11-01 08:15) [3]

С RGB я вроде разобрался (GetRValue, GetGValue, GetBValue), но вот с CMYK никак не получается.

2Raptor: Инфы действительно много, а вот формулы перевода нет. Если знаешь
где, кинь линк


 
Mbo   (2001-11-01 08:43) [4]

C=1-R
M=1-G
Y=1-B
Однако не все однозначно (разные устройства печати, краски)
Для каждого подбираются свои поправки


 
nikkie   (2001-11-01 09:14) [5]

http://delphi.vitpc.com/asp/answer.asp?IDAnswer=1664


 
Ajax   (2001-11-01 16:09) [6]

2nikkie ну чего-то этот пример переводит, но совсем не так как Photoshop.

2Mbo что-то я не понял, c,m,y - отрицательные?


 
Mbo   (2001-11-01 16:17) [7]

нет, 1 - в цветовой модели - насыщенный цвет, т.е. на 255 надо заменить


 
nikkie   (2001-11-01 16:22) [8]

я пример не тестировал, это первое, что нашлось, когда я набрал в поиске Delphi CMYK.

если ты прочитал ответ - там написано, что однозначного перевода из RGB в CMYK не существует. соответственно, "как Photoshop" можно сделать только если знать точно алгоритм того, что Photoshop делает.

насколько мне помнится (читал про CMYK в какой-то книжке про Photoshop) у CMYK есть еще некоторые физические ограничения типа C, M не могут быть меньше 3, а Y меньше 5 (я приблизительно говорю). Возможно, Photoshop делает и на это поправку...


 
Ajax   (2001-11-01 16:25) [9]

2Mbo:
Ясненько, только почему везде CMYK в пределах от 0 до 100, это проценты?
И откудова K брать?


 
Ajax   (2001-11-01 16:28) [10]

2nikkie Я знаю про проблемы с переводом в CMYK и даже простил бы этому примеру небольшие отклонения в цвете, но цвет он мне выдает другой, СОВСЕМ!


 
Mbo   (2001-11-01 16:34) [11]

>пределах от 0 до 100, это проценты
ну да
>откудова K брать
ссылку от nikkie посмотрел? Там есть.
еще раз уточню, что CMYK подгоняется под конкретную систему печати, т.е посчитав CMY по простым формулам, не получим при печати точного воспроизведения - это связано с тем, что RGB - модель для источника света -монитора, а CMY - для отражающе-поглощающей поверхности - бумаги.
И К-черный вводят искусственно, поскольку смесь красителей дает грязно-серый, а не черный цвет


 
Ajax   (2001-11-01 16:47) [12]

>ссылку от nikkie посмотрел?
А ты??? Там ОЧЕНЬ приблизительный, если можно так сказать, перевод.



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
4-22490
SergeyDonetsk
2001-11-06 09:22
2002.01.08
как на АПИ можно зная Handle Canvas а задать


1-22160
Yakudza
2001-12-20 16:46
2002.01.08
Скопировать в Clipboard


1-22005
Cossys
2001-12-17 16:57
2002.01.08
Вывод всех форм приложения с активными заголовками


6-22290
SineD
2001-10-09 17:48
2002.01.08
Вопрос по Sockets API


1-22058
$Hic0
2001-12-16 11:49
2002.01.08
TTreeView and TListView