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

Вниз

Как запихнуть 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.045 c
10-1134467859
Gusev
2005-12-13 12:57
2007.07.15
Как сохранить документ Excel в определенном формате


15-1181832424
Александр Фролов
2007-06-14 18:47
2007.07.15
Подскажите как просмотреть веб страницу с charset=shift_jis


2-1182251677
zsergey
2007-06-19 15:14
2007.07.15
не работает фильтр Like % ...


3-1176811978
Новичёк
2007-04-17 16:12
2007.07.15
Проблема с подключением к БД


3-1173792940
Ega23
2007-03-13 16:35
2007.07.15
Сортировка ADODataSet





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