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

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

Как запихнуть BMP в PNG?


Страницы:   1 2

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, но вот вывод обычных примитивов действительно медленнее.


Страницы:   1 2

Наверх

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