Главная страница

Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх

Top.Mail.Ru     Яндекс.Метрика













Память: 0.79 MB
Время: 0.028 c
1-22228
nazgul
2001-12-15 14:28
2002.01.08
Как сделать?


3-21936
vvs
2001-12-05 06:42
2002.01.08
Delphi5+SQL Server7 нормально, а Delphi5+SQL 2000 бред


6-22275
Moscower
2001-10-08 12:43
2002.01.08
Как можно через TNMFTP послать команду chmod на Linux-сервер?


14-22363
Дремучий
2001-11-02 18:16
2002.01.08
Ну и ...?


1-22071
KAA
2001-12-19 10:48
2002.01.08
Два сервиса мешают друг другу.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский