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

Вниз

Конвертирование 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 вся ветка

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

Наверх





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


2-1358182960
McLotos
2013-01-14 21:02
2013.09.29
сохранение из TStringList в переменную типа string


2-1357934860
McLotos
2013-01-12 00:07
2013.09.29
MySQLConnection ошибка Access Violation...


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


15-1366144202
Юрий
2013-04-17 00:30
2013.09.29
С днем рождения ! 17 апреля 2013 среда





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