Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глубина цвета картинки


Gu ©   (2011-04-26 17:52:00) 

Допустим в image1 загружена картинка (один из форматов bmp,jpg,png,gif и тп). Как узнать картинкину цветность? Пробовал через tPixelFormat но это только для bmp работает..


han_malign   (2011-04-27 09:25:00) [1]


> (помоему, не уверен) всегда 32, у него термин "пиксель" то не очень применим.

- обычно 24, термин пиксель не применим к любому сжатому формату(gif - сжат LZW, PNG - несколько схем дельта-кодирования и deflate(LZ77), JPEG(+2000,+losless) - в зависимости от версии - косинус-преобразование, вейвлеты и/или deflate)...

В общем случае у TImage есть только DDB поверхность глубина цвета которой совпадает с экраном (GetDeviceCaps(image.Canvas.Handle, BITSPIXEL) * GetDeviceCaps(image.Canvas.Handle, PLANES)).
Хотя иногда по (image.Picture.Graphic.Palette <> 0)можно сделать вывод, что глубина цвета источника соответствует количеству элементов палитры pal_count:=GetPaletteEntries(image.Picture.Graphic.Palette, 0, 0, nil);, но - в некоторых случаях, этот вывод может быть ошибочным, т.к. контейнер с полноцветным изображением также может содержать - рекомендованную палитру(для оптимизации на древне-мохнатых(или сильно-портативных) железяках)...


Palladin   (2011-04-26 20:27:00) [2]


> Как узнать картинкину цветность?

Смысл? Фактически формат "пикселей" есть только у Bitmap. У gif палитра в заголовке, у png может быть несколько слоев, jpg (помоему, не уверен) всегда 32, у него термин "пиксель" то не очень применим.


Amoeba_   (2011-04-26 20:18:00) [3]


> oldman ©   (26.04.11 18:53) [2]
>
>
> > Допустим в image1 загружена картинка (один из форматов
> bmp,
> > jpg,png,gif и тп).
>
>
> Я что-то пропустил? Как ты в TImage gif загнал?
>

Если подключить библиотеку GraphicEx, то TImage станет понимать и gif, и массу других форматов.


oldman   (2011-04-26 18:53:00) [4]


> Допустим в image1 загружена картинка (один из форматов bmp,
> jpg,png,gif и тп).


Я что-то пропустил? Как ты в TImage gif загнал?

По сабжу - что значит "загружена". То есть есть сама картинка? Ссылку на код заголовков дать или сам?


clickmaker   (2011-04-26 18:00:00) [5]

у класса-наследника TGraphic может быть переопределенное (или свое) свойство для этого


Наверх

Титульная страница Поиск, карта сайта Написать письмо