Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
Evgeny   (2001-11-02 13:04) [0]

Каким образом преобразовать Bitmap из цветного в серый, если Bitmap может быть и 8, и 16, и 24 - битным. Преобразовать 24 - битный Bitmap очень просто. А вот как тоже сделать с остальными форматами и достаточно компактно?


 
DK   (2001-11-04 02:59) [1]

image1.Picture.Bitmap.Monochrome;


 
Evgeny   (2001-11-05 07:21) [2]

>DK
К сожалению этот ответ из области VCL, а форум по WinAPI.
Вопрос остается открытым.
Есть смельчаки?


 
Raptor   (2001-11-05 23:05) [3]

Привет!

Если тебе с 24-битными легко, то должно быть легко и с другими формтами.
Там принцип конвертирования одинаковый. Просто для других форматов вытягивать значения R, G и B труднее.
Например для 16 бит, если не ошибаюсь, представление даных о компонентах R, G и B такое:
первые 5 бит - R
следующие 6 бит - G
последние 5 бит - B
Ну вот вытягивай их, а потом делаешь так как и для 24 бит.

Raptor.


 
Evgeny   (2001-11-06 06:43) [4]

>Raptor
Да наверно, если больше никто ничего не подскажет, это окажется единственным вариантом.


 
DMN   (2001-11-06 10:22) [5]

Если памяти не жаль - можно сперва перерисовать картинку в 24bit, а потом ее уже и серить :)


 
Evgeny   (2001-11-06 10:46) [6]

>DMN
Вот, вот. Как только создать этот Bitmap в 24 битах, не используя VCl? В API функция CreateCompatibleBitmap не очень для этого подходит, к тому же все это садится на CreateCompatibleDC, что тоже не способствует 100% 24 битности. Можно конечно подцепить юнит Graphics, ну уж очень не хочется ради одного Bitmap`а, добавлять к программе ~60 Kb.


 
Donal   (2001-11-06 10:56) [7]

тады пиши собственный TBitmap :-)))


 
DK   (2001-11-07 04:48) [8]

Может это?

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_BITMAP Copies 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


 
Evgeny   (2001-11-08 07:10) [9]

>DK
Смотри-ка. А я про эту функцию и забыл как-то. Правда Monochrome, а не GrayScale, но все же.


 
DK   (2001-11-11 01:41) [10]

А разве Monochrome и GrayScale не одно и то же?


 
Evgeny   (2001-11-12 10:14) [11]

Monochrome - это черно-белая картинка, а GrayScale та же цветная, но приведенная к оттенкам серого



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
3-42381
EsKor
2001-12-11 07:38
2002.01.14
Delphi и Visual FoxPro


1-42415
d()c666
2001-12-27 02:08
2002.01.14
символ эквивалентный переходу на другую строку...


1-42517
grishaK
2001-12-26 12:54
2002.01.14
Явная загрузка dll


1-42453
dolphin
2001-12-25 02:01
2002.01.14
преобразование


3-42362
Alan
2001-12-12 17:44
2002.01.14
Сортировка записей по пустому полю





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский