Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2012, 00:40   #1
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию Изменить глубину цвета битмапа

Необходимо изменить формат пикселя, но так сказать с наименьшей потерей качества, т. е:
если написать:
Код:
var
  bmp:TBitmap;
begin
  bmp:=TBitmap.Create;
  bmp.LoadFromFile('C:\source.bmp');
  bmp.PixelFormat:=pf4bit;
  bmp.SaveToFile('C:\target.bmp');
  bmp.Free;
end;
то изменённое изображение выглядит так:

а если изменить глубину цвета с помощью программы Irfan_View на 4бита на пиксель, то изображение приобретает такой вид:

Как видно - "разница на лицо"
Может кто знает как добиться такого-же результата на Делфи.

Последний раз редактировалось Тоба; 08.08.2012 в 00:48. Причина: добавление
Тоба вне форума Ответить с цитированием
Старый 08.08.2012, 11:31   #2
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Цитата:
Сообщение от Тоба Посмотреть сообщение
Может кто знает как добиться такого-же результата на Делфи.
Простых способов нет. Если есть желания разобраться и реализовать что-то свое, вот несколько ссылок:
Лекция: Алгоритмы квантования для полутоновых и цветных изображений
Color quantization
Нормальных реализаций я не встречал, обычно это поделки которые не дают желаемого результата, либо большие проекты с кучей лишнего.
ImageEn (Median Cut, NeuQuant) - платный, но в сети есть более старые версии с исходниками.
FreeImage (Wu, NeuQuant) - библиотека, FreeImage Delphi Wrapper
Это далеко не все, что можно найти, возможно есть еще интересные проекты. Еще в TGIFImage реализовано Octree квантование, но качество для 16 цветов скорее всего будет плохим.
x128 вне форума Ответить с цитированием
Старый 08.08.2012, 22:01   #3
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию

x128, спасибо за отклик и за ссылочки - поковыряюсь, может чё и выгорит
P.S. достать бы исходничек Irfan_View - и "гора с плеч"
Тоба вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трансформация битмапа в DirectX ds.Dante Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 03.02.2012 14:39
Чтение битмапа Miha85193 Общие вопросы Delphi 12 23.02.2011 13:20
Получить хендл битмапа tuip Общие вопросы C/C++ 1 27.01.2011 15:45
запись битмапа в файл SunKnight Общие вопросы Delphi 8 09.06.2008 08:56
Сжатие битмапа Rapid Мультимедиа в Delphi 7 08.12.2007 16:38