![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запихнуть BMP в PNG?
Ezorcist © (2007-06-19 22:41:00)Будте добры, подскажите ))
oxffff (2007-06-21 22:15:00) [1]Вот это уже другой разговор.
homm (2007-06-21 21:52:00) [2]> Vladimir Kladov? Этот человек официальный тестер?
Зачем чушь нести?
> Да и сам подумай, разница более чем 1500 раз очень сомнительна.
Мне нет. См. [3].
> Если есть ссылки в инет на тормознутость GDI+ при конвертировании с реальным кодом
Подставляй ладоши
http://www.xaraxtreme.org/about/performance.html
http://rsdn.ru/article/gdi/gdiplus1.xml
(качаем «Демонстрационное приложение на C++», открываем Help—About, перемещаем окошко поверх основной формы, дивимся «кривости и тормознутосити»©.)
http://rsdn.ru/article/gdi/gdiplus2mag.xml#ECLAE
http://contest2005.gotdotnet.ru/Request/Tools/UtilitiesLib/185927.aspx
Ну че, на третью страницу гугла пойдем, или так уже хватит?
oxffff (2007-06-21 20:29:00) [3]используються=используются
oxffff (2007-06-21 20:28:00) [4]
> Я бы так делать не стал, так как в ругой версии библиотеки
> GUIDы могут поменяться. Для получения идентификаторов кодеров/декодеров
> есть специальные функции.
Зачем GUIDу меняться?
>Для получения идентификаторов кодеров/декодеров есть специальные >функции.
Они естественно и используються для получения поддерживаемых GUIDов.
Инс (2007-06-21 19:47:00) [5]ой, 'заглянуть сюда' написал, а ссылку не дал :)
http://pngdelphi.sourceforge.net/
Инс (2007-06-21 19:47:00) [6]По сути вопроса: Я предпочитаю GDI+, хотя можно заглянуть еще и сюда:
> CONST
>
> BMP_CLSID:TGUID='{557CF400-1A04-11D3-9A73-0000F81EF32E}';
>
>
> PNG_CLSID:TGUID='{557CF406-1A04-11D3-9A73-0000F81EF32E}';
>
Я бы так делать не стал, так как в ругой версии библиотеки GUIDы могут поменяться. Для получения идентификаторов кодеров/декодеров есть специальные функции.
oxffff (2007-06-21 18:31:00) [7]
> Ну сам напросился :)
Ты говорил о всей GDI+. Дословно
>homm © (19.06.07 22:58) [3]
>GDI+ кривая тормознутая библиотека. есть и другие способы, более быстрые.
Vladimir Kladov? Этот человек официальный тестер?
Где указаны параметры окружения и настройки.
Да и сам подумай, разница более чем 1500 раз очень сомнительна.
Ты пойми, что если GDI+ и проигрывает в tiff, то тебе нужно сказать
GDI+ непригодна для оперативного конвертирования больших изображений.
Вообщем ты понял надеюсь.
P.S. Если есть ссылки в инет на тормознутость GDI+ при конвертировании с реальным кодом, то буду рад их посмотреть. Заранее благодарен.
Sapersky (2007-06-21 16:57:00) [8]ИМХО, обычный пользователь с TIFF имеет дело крайне редко (мне вот один раз за 5 лет пришлось - прислали скан), тем более такого размера.
Если программа рассчитана на постоянную работу с такими картинками, понятно что лучше использовать специализированную библиотеку. Но для опциональной поддержки "раз в 5 лет пригодится" GDI+ самое то.
homm (2007-06-21 14:07:00) [9]> [16] oxffff © (21.06.07 13:39)
> Скажи конкретно, что, где и как?
> фимилии, адреса, явки.
> А так это только твое IMHO.
Ну сам напросился :)
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1178000222&n=10
Vladimir Kladov (02.05.07 16:00) [2]
Насчёт GDI+: есть у меня Tiff-изображение, чертеж 25000х11000, монохромное. Gdi+ выделяет 1Гб памяти и мурыжит его минут 5 как минимум (если в компе только 512М, пусть даже он 3,2ГГц с гипертредингом - больше 10 минут). На базе CxImage - 0.2 секунды, и все готово.
oxffff (2007-06-21 13:39:00) [10]
> homm © (20.06.07 22:15) [14]
> > Где факты?
>
> У тебя под носом, нужно только желаение их получить.
Скажи конкретно, что, где и как?
фимилии, адреса, явки.
А так это только твое IMHO.
Sapersky (2007-06-20 22:52:00) [11]А если в гиф?
Не надо в гиф. Никаких преимуществ кроме анимации у него нет.
homm (2007-06-20 22:15:00) [12]> Где факты?
У тебя под носом, нужно только желаение их получить.
Ezorcist (2007-06-20 20:05:00) [13]так все таки что на счет гифа посоветуете?
oxffff (2007-06-20 19:38:00) [14]
> homm © (20.06.07 07:57) [7]
> > Да ну. Ты пробовал?
> > XP тоже тормозит?
>
> Не надо принимать на свой счет. Я знаю что говорю.
Ты писал?
Где факты?
Медленнее относительно чего?
и т.д.
Ezorcist (2007-06-20 18:50:00) [15]Нашел:
procedure convertbmp2gif;
var
bmp: tbitmap;
begin
with tgifimage.create do
try
bmp := tbitmap.create;
try
bmp.loadfromfile('mybitmap.bmp');
assign(bmp);
finally
bmp.free;
end;
savetofile('mybitmap.gif);
finally
free;
end;
end;
Но никак не могу найти где объявлен класс tgifimage?
Ezorcist (2007-06-20 18:08:00) [16]А если в гиф?
Sapersky (2007-06-20 16:58:00) [17]Похоже, что никак.
Пробовал
Params.Count := 1;
Params.Parameter[0].Guid := EncoderQuality;
Params.Parameter[0].NumberOfValues := 1;
Params.Parameter[0].Type_ := ULong(ptLong);
Params.Parameter[0].Value := @Quality; // 0..100
GdipSaveImageToFile(Bitmap, PWideChar(wName), Encoder, @Params);
Для jpeg работает, для png нет.
Сравнивал с KOLPng с минимальным уровнем компрессии (CompressionLevel := 1). Такое ощущение что GDI+ пытается подстраивать уровень сжатия под конкретную картинку. Однако эффект от этой адаптивности часто противоположный - на 3 картинках из 4-х размер у GDI+ получился больше (на 10-30%). Скорость на тех же 4-х картинках - 2 на 2, можно сказать ничья.
В общем, особой кривости в GDI+ не заметил, хотя она немного проигрывает KOLPng (при сохранении, с загрузкой вопрос пока неясный).
Sapersky (2007-06-20 15:02:00) [18]Кстати, как задать степень сжатия png в GDI+?
homm (2007-06-20 07:57:00) [19]> Да ну. Ты пробовал?
> XP тоже тормозит?
Не надо принимать на свой счет. Я знаю что говорю.
Efir (2007-06-19 23:33:00) [20]
> GDI+ кривая тормознутая библиотека. есть и другие способы,
> более быстрые.
DrawImage вполне быстро работает, а с прозрачностью, так быстрей GDI раза в 2, но вот вывод обычных примитивов действительно медленнее.