Image и RGB
Нужно как-то из RGB в Color (как я понимаю) сконвертить!
Хелп тебе в помощь! Где-то в недрах VCL описаны функции RGBToColor и ColorToRGB.
Хелп тебе в помощь! Где-то в недрах VCL описаны функции RGBToColor и ColorToRGB.
Да! В этом-то и проблема! Я не глупый и в начале в хелпе лазал! =)))
Там есть ColorToRGB, а вот RGBToColor функции НЕ СУЩЕСТВУЕТ. Доказано МНОЙ!
Описание Help->Windows SDK
RGB(...)
Описание Help->Windows SDK
RGB(r, g, b) - структуру я эту знаю... мне КОНКРЕТНАЯ проблема волнует!
RGB(r, g, b) - структуру я эту знаю... мне КОНКРЕТНАЯ проблема волнует!
Я вот что подумал... В канве ведь в 16ричной системе передается параметры (т.е. для не знающих пример - $000000FF - красный). Может из Edit'ов выдрать занчения и как бы "соединить" их в одно значение?
RGB(r, g, b) - структуру я эту знаю... мне КОНКРЕТНАЯ проблема волнует!
Это не структура, а макрос.
Можно конечнго вручную
Canvas->Color = iRed + (iGreen<<8) + (iBlue<<16);
iGreen сдвигается на 8 битов влево.
---
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 0x00FF0000 represents full-intensity, pure blue, 0x0000FF00 is pure green, and 0x000000FF is pure red. 0x00000000 is black and 0x00FFFFFF is white.
---
1. Обнуляешь TColor.
2. Добавляешь Blue компоненту. Сдвигаешь на байт влево.
3. Добавляешь Green компоненту. Сдвигаешь на байт влево.
4. Добавляешь Red компоненту.
5. Имеешь то, что надо ;-)
1. Обнуляешь TColor.
2. Добавляешь Blue компоненту. Сдвигаешь на байт влево.
3. Добавляешь Green компоненту. Сдвигаешь на байт влево.
4. Добавляешь Red компоненту. Сдвигаешь на байт влево.
5. Имеешь то, что надо ;-)
Гм. A макрос RGB делает не то же самое?
Из описания типа TColor :
---
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 0x00FF0000 represents full-intensity, pure blue, 0x0000FF00 is pure green, and 0x000000FF is pure red. 0x00000000 is black and 0x00FFFFFF is white.
---
1. Обнуляешь TColor.
2. Добавляешь Blue компоненту. Сдвигаешь на байт влево.
3. Добавляешь Green компоненту. Сдвигаешь на байт влево.
4. Добавляешь Red компоненту. Сдвигаешь на байт влево.
5. Имеешь то, что надо ;-)
ОО! По идее то что надо! Спасибо Mongoose'у тоже!!!
а вот iRed как я понимаю тип long? Да?
ОО! По идее то что надо! Спасибо Mongoose'у тоже!!!
а вот iRed как я понимаю тип long? Да?
iRed может быть байт, он никуда не сдвигается.
iGreen хотя бы short
iBlue int
ОО! По идее то что надо! Спасибо Mongoose'у тоже!!!
а вот iRed как я понимаю тип long? Да?
нее, это INT! Всем спасибо за внимание! Помогло!
Гм. A макрос RGB делает не то же самое?
То же, но у меня по пунктам ;-)