Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.29;
Скачать: CL | DM;

Вниз

Конвертирование BMP в GIF   Найти похожие ветки 

 
leonidus ©   (2007-08-02 18:03) [0]

Написал простенькую процедурку для конвертинга BMP в GIF. Конвертация происходит, но если исходная картинка truecolor то на выоде картинка получается с покареженной палитрой, видимо лишние цвета тупо отбрасываются для получения стандартных для  гифов 256. Вот так выглядит процедура:

procedure GIF_save(btm:TBitmap; path:string);
var
gif:TGIFImage;
begin
gif:=TGIFImage.Create;
gif.Assign(btm);
gif.SaveToFile(path);
gif.Free;
end;

Как мне ее доработать чтобы в выходной картинке с палитрой все было нормально? Заранее спасибо.


 
Efir ©   (2007-08-02 19:53) [1]

Придётся самому приводить к 256 цветам, или использовать сторонние компоненты.


 
leonidus ©   (2007-08-03 10:34) [2]

А если сторонние  то какие?


 
Sdubaruhnul   (2007-08-03 11:14) [3]

Ээээээ.... А TGIFImage откуда?

Если это Anders Melander"s TGIFImage, то надо задать DitherMode, прежде чем присваивать.


 
leonidus ©   (2007-08-03 11:40) [4]

TGIFImage это именно сторонний компонент Anders Melander версии 2.2. Так что там нужно предварительно сделать?


 
leonidus ©   (2007-08-03 12:27) [5]

Доработал процедуру:

procedure GIF_save(btm:TBitmap; path:string);
var
gif:TGIFImage;
begin
gif:=TGIFImage.Create;

gif.ColorReduction:=rmQuantize;
gif.DitherMode:=dmBurkes;

gif.Assign(btm);
gif.SaveToFile(path);
gif.Free;
end;

Методом подбора значений ColorReduction и DitherMode добился удовлетворительно результата, но ACDSee конвертирует качественней. Неужели нельзя добится такого же качества?


 
Sdubaruhnul   (2007-08-03 14:14) [6]

>но ACDSee конвертирует качественней. Неужели нельзя добится такого же качества?

Надо пошустрить в настройках ACDSee, какой алгоритм они используют.

Вообще, про dmBurkes автор пишет:
Maps colors using Burkes Error Diffusion dihthering. Slightly slower than Floyd Steinberg, but faster than Stucki. Good for monochrome dithering.

Может лучше dmFloydSteinberg?


 
User   (2008-07-11 18:08) [7]

... это не ответ, а реанимация вопроса ...
использую и

     gif.ColorReduction :=  rmQuantize;
     gif.DitherMode :=  dmFloydSteinberg;

и другие - получается слабое подобие оригинала - может такой ТGIFImage// использую конечно не фонтан - "Version: 2.2" , но ничего более "нового" найти не смог ...
При использовании RxGIFAnimator получается вроде лучше, но все равно не то ...
Так есть ли решение для ГИФа (не анимэ), или его можно использовать только для ВЭБа  (8 бит)? ...


 
Sapersky   (2008-07-11 20:27) [8]

FloydSteinberg у TGifImage кривоват. Заметно, если сделать картинку монохромной (ко всем ссылкам добавить http://).
GifImage:
ipicture.ru/Gallery/Viewfull/3392969.html
Нормальный (надеюсь) FS:
ipicture.ru/Gallery/Viewfull/3392971.html

Впрочем, на качество картинки в 256 цветах это слабо влияет, главное - правильный подбор палитры, дизеринг только пытается сгладить переходы между цветами при заданной палитре.
А что касается подбора - сам не знаю идеального решения, во всяком случае, готовых компонентов не могу предложить. Есть альтернативный метод расчёта палитры:
downloads.sourceforge.net/tfastdib/FastLIB_v2.5_1999.rar?modtime=1154284445&big_mirror=0
(FastQuant.pas)
Даёт чуть более "гладкую" картинку, но имеется тенденция к искажению исходных цветов (белый цвет стал темнее):
ipicture.ru/Gallery/Viewfull/3393959.html
Расчёт палитры по примеру с efg2.com (который использует GifImage):
ipicture.ru/Gallery/Viewfull/3393961.html

или его можно использовать только для ВЭБа  (8 бит)?

У GIF макс. 256 цветов (8 бит/пиксель) - ограничение формата, независимо от того, веб или не веб. Используйте PNG.


 
User   (2008-07-11 20:50) [9]

... благодарю, будем копать в сторону PNG, или jpeg-ать (хотя, там тоже при 24b и стандартных решениях результат несколько хромает ...


 
имя   (2009-01-27 01:14) [10]

Удалено модератором



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

Текущий архив: 2013.09.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1366016419
p
2013-04-15 13:00
2013.09.29
Реклама на сайте


2-1357991481
Теркин
2013-01-12 15:51
2013.09.29
модификация стандартных компонентов


2-1358163221
McLotos
2013-01-14 15:33
2013.09.29
Аргументы имеют неверный тип, выходят за пределы допустимого...


8-1231067653
Lamer6666
2009-01-04 14:14
2013.09.29
Интерактивная карта


15-1363017588
DevilDevil
2013-03-11 19:59
2013.09.29
Проект "CachedBuffers"