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

Вниз

Как запихнуть BMP в PNG?   Найти похожие ветки 

 
Ezorcist   (2007-06-19 22:41) [0]

Будте добры, подскажите ))


 
oxffff ©   (2007-06-19 22:52) [1]

GDI+

CONST

BMP_CLSID:TGUID="{557CF400-1A04-11D3-9A73-0000F81EF32E}";

PNG_CLSID:TGUID="{557CF406-1A04-11D3-9A73-0000F81EF32E}";


Var
Bitmap:TGPBitmap;
.....

Bitmap.Save("MY.PNG",PNG_CLSID);


 
oxffff ©   (2007-06-19 22:53) [2]

GDI+ API                                                         }
     {                                                                  }
     { home page : http://www.progdigy.com                              }
     { email     : hgourvest@progdigy.com


 
homm ©   (2007-06-19 22:58) [3]

GDI+ кривая тормознутая библиотека. есть и другие способы, более быстрые.


 
oxffff ©   (2007-06-19 23:01) [4]


> homm ©   (19.06.07 22:58) [3]
> GDI+ кривая тормознутая библиотека. есть и другие способы,
>  более быстрые.


Да ну. Ты пробовал?
XP тоже тормозит?


 
oxffff ©   (2007-06-19 23:07) [5]

to homm

Да и в анкете поправь свой Assambler


 
Efir ©   (2007-06-19 23:33) [6]


> GDI+ кривая тормознутая библиотека. есть и другие способы,
>  более быстрые.


DrawImage вполне быстро работает, а с прозрачностью, так быстрей GDI раза в 2, но вот вывод обычных примитивов действительно медленнее.


 
homm ©   (2007-06-20 07:57) [7]

> Да ну. Ты пробовал?
> XP тоже тормозит?

Не надо принимать на свой счет. Я знаю что говорю.


 
Sapersky   (2007-06-20 15:02) [8]

Кстати, как задать степень сжатия png в GDI+?


 
Sapersky   (2007-06-20 16:58) [9]

Похоже, что никак.
Пробовал
   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 (при сохранении, с загрузкой вопрос пока неясный).


 
Ezorcist   (2007-06-20 18:08) [10]

А если в гиф?


 
Ezorcist   (2007-06-20 18:50) [11]

Нашел:
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?


 
oxffff ©   (2007-06-20 19:38) [12]


> homm ©   (20.06.07 07:57) [7]
> > Да ну. Ты пробовал?
> > XP тоже тормозит?
>
> Не надо принимать на свой счет. Я знаю что говорю.


Ты писал?
Где факты?
Медленнее относительно чего?
и т.д.


 
Ezorcist   (2007-06-20 20:05) [13]

так все таки что на счет гифа посоветуете?


 
homm ©   (2007-06-20 22:15) [14]

> Где факты?

У тебя под носом, нужно только желаение их получить.


 
Sapersky   (2007-06-20 22:52) [15]

А если в гиф?

Не надо в гиф. Никаких преимуществ кроме анимации у него нет.


 
oxffff ©   (2007-06-21 13:39) [16]


> homm ©   (20.06.07 22:15) [14]
> > Где факты?
>
> У тебя под носом, нужно только желаение их получить.


Скажи конкретно, что, где и как?
фимилии, адреса, явки.
А так это только твое IMHO.


 
homm ©   (2007-06-21 14:07) [17]

> [16] oxffff ©   (21.06.07 13:39)
> Скажи конкретно, что, где и как?
> фимилии, адреса, явки.
> А так это только твое IMHO.

Ну сам напросился :)

http://delphimaster.net/view/11-1178000222/

Vladimir Kladov   (02.05.07 16:00) [2]

Насчёт GDI+: есть у меня Tiff-изображение, чертеж 25000х11000, монохромное. Gdi+ выделяет 1Гб памяти и мурыжит его минут 5 как минимум (если в компе только 512М, пусть даже он 3,2ГГц с гипертредингом - больше 10 минут). На базе CxImage - 0.2 секунды, и все готово.


 
Sapersky   (2007-06-21 16:57) [18]

ИМХО, обычный пользователь с TIFF имеет дело крайне редко (мне вот один раз за 5 лет пришлось - прислали скан), тем более такого размера.
Если программа рассчитана на постоянную работу с такими картинками, понятно что лучше использовать специализированную библиотеку. Но для опциональной поддержки "раз в 5 лет пригодится" GDI+ самое то.


 
oxffff ©   (2007-06-21 18:31) [19]


> Ну сам напросился :)


Ты говорил о всей GDI+. Дословно

>homm ©   (19.06.07 22:58) [3]
>GDI+ кривая тормознутая библиотека. есть и другие способы, более быстрые.

Vladimir Kladov? Этот человек официальный тестер?
Где указаны параметры окружения и настройки.

Да и сам подумай, разница более чем  1500 раз очень сомнительна.

Ты пойми, что если GDI+ и проигрывает в tiff, то тебе нужно сказать

GDI+ непригодна для оперативного конвертирования больших изображений.
Вообщем ты понял надеюсь.

P.S. Если есть ссылки в инет на тормознутость GDI+ при конвертировании с реальным кодом, то буду рад их посмотреть. Заранее благодарен.


 
Инс   (2007-06-21 19:47) [20]

По сути вопроса: Я предпочитаю GDI+, хотя можно заглянуть еще и сюда:


> CONST
>
> BMP_CLSID:TGUID="{557CF400-1A04-11D3-9A73-0000F81EF32E}";
>
>
> PNG_CLSID:TGUID="{557CF406-1A04-11D3-9A73-0000F81EF32E}";
>

Я бы так делать не стал, так как в ругой версии библиотеки GUIDы могут поменяться. Для получения идентификаторов кодеров/декодеров есть специальные функции.


 
Инс   (2007-06-21 19:47) [21]

ой, "заглянуть сюда" написал, а ссылку не дал :)
http://pngdelphi.sourceforge.net/


 
oxffff ©   (2007-06-21 20:28) [22]


> Я бы так делать не стал, так как в ругой версии библиотеки
> GUIDы могут поменяться. Для получения идентификаторов кодеров/декодеров
> есть специальные функции.


Зачем GUIDу меняться?

>Для получения идентификаторов кодеров/декодеров есть специальные >функции.

Они естественно и используються для получения поддерживаемых GUIDов.


 
oxffff ©   (2007-06-21 20:29) [23]

используються=используются


 
homm ©   (2007-06-21 21:52) [24]

> 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 22:15) [25]

Вот это уже другой разговор.



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

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

Наверх




Память: 0.53 MB
Время: 0.016 c
2-1181502728
Golikov
2007-06-10 23:12
2007.07.15
как запустить стандартный просмоторщик изображений и факсов Windo


15-1182185234
Грициан
2007-06-18 20:47
2007.07.15
Доведем bbc до истерики


2-1182429999
kotenok
2007-06-21 16:46
2007.07.15
как с помощью regexp выбрать несколько с услвием and?


4-1170780588
capkoh
2007-02-06 19:49
2007.07.15
Модальное окно на WinAPI


2-1182073927
..::KraN::..
2007-06-17 13:52
2007.07.15
String to ANSI