![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GrayScale
Evgeny © (2001-11-02 13:04:00)Каким образом преобразовать Bitmap из цветного в серый, если Bitmap может быть и 8, и 16, и 24 - битным. Преобразовать 24 - битный Bitmap очень просто. А вот как тоже сделать с остальными форматами и достаточно компактно?
Evgeny (2001-11-12 10:14:00) [1]Monochrome - это черно-белая картинка, а GrayScale та же цветная, но приведенная к оттенкам серого
DK (2001-11-11 01:41:00) [2]А разве Monochrome и GrayScale не одно и то же?
Evgeny (2001-11-08 07:10:00) [3]>DK
Смотри-ка. А я про эту функцию и забыл как-то. Правда Monochrome, а не GrayScale, но все же.
DK (2001-11-07 04:48:00) [4]Может это?
HANDLE CopyImage(
HANDLE hImage, // handle to the image to copy
UINT uType, // type of image to copy
int cxDesired, // desired width of new image
int cyDesired, // desired height of new image
UINT fuFlags // copy flags
uType
Specifies the type of image to be copied. This parameter can be one of the following values:
Value Meaning
IMAGE_BITMAPCopies a bitmap.
IMAGE_CURSOR Copies a cursor.
IMAGE_ICON Copies an icon.
fuFlags
Specifies a combination of the following values:
Value Meaning
LR_COPYDELETEORG
LR_COPYRETURNORG
LR_MONOCHROME
LR_COPYFROMRESOURCE
Donal (2001-11-06 10:56:00) [5]тады пиши собственный TBitmap :-)))
Evgeny (2001-11-06 10:46:00) [6]>DMN
Вот, вот. Как только создать этот Bitmap в 24 битах, не используя VCl? В APIфункция CreateCompatibleBitmapне очень для этого подходит, к тому же все это садится на CreateCompatibleDC, что тоже не способствует 100% 24 битности. Можно конечно подцепить юнит Graphics, ну уж очень не хочется ради одного Bitmap`а, добавлять к программе ~60 Kb.
DMN (2001-11-06 10:22:00) [7]Если памяти не жаль - можно сперва перерисовать картинку в 24bit, а потом ее уже и серить :)
Evgeny (2001-11-06 06:43:00) [8]>Raptor
Да наверно, если больше никто ничего не подскажет, это окажется единственным вариантом.
Raptor (2001-11-05 23:05:00) [9]Привет!
Если тебе с 24-битными легко, то должно быть легко и с другими формтами.
Там принцип конвертирования одинаковый. Просто для других форматов вытягивать значения R, G и B труднее.
Например для 16 бит, если не ошибаюсь, представление даных о компонентах R, G и B такое:
первые 5 бит - R
следующие 6 бит - G
последние 5 бит - B
Ну вот вытягивай их, а потом делаешь так как и для 24 бит.
Raptor.
Evgeny (2001-11-05 07:21:00) [10]>DK
К сожалению этот ответ из области VCL, а форум по WinAPI.
Вопрос остается открытым.
Есть смельчаки?
DK (2001-11-04 02:59:00) [11]image1.Picture.Bitmap.Monochrome;