Форум: "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];
Память: 0.47 MB
Время: 0.013 c