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

Вниз

Bitmap=>Jpeg без модуля Jpeg соотвтственно.   Найти похожие ветки 

 
Sub_Black   (2006-04-17 11:20) [0]

Ребяты, подскажите возможно ли это, API вроде напрямую с Jpeg не работает. Может быть есть у кого наработки, а-то я пока в тупике.


 
Brother ©   (2006-04-17 11:37) [1]

НЕ ВОЗМОЖНО! Твой тупик на всегда. Без модуля ниче не выйдет.
:(


 
Sub_Black   (2006-04-17 12:12) [2]

Тогда может быть есть варианты? Менее громоздкие модули, например от сторонних разработчиков? Неужели все вот так вот грустно?


 
Elen ©   (2006-04-17 12:29) [3]

Поищи компоненты вроде ImageGear или Impulse Studio. Они распространяются как ActiveX и их легко встроить в Делфи. Это не настолько громоздкие компоненты


 
balepa ©   (2006-04-17 13:08) [4]


> Sub_Black   (17.04.06 12:12) [2]
> Тогда может быть есть варианты? Менее громоздкие модули, например от > сторонних разработчиков? Неужели все вот так вот грустно?

Напиши свой


 
ZzzzZ ©   (2006-04-17 13:51) [5]

XЧерез оли или как ее там.
Где-то видел пример, на асме.


 
Sub_Black   (2006-04-17 14:52) [6]

>>Elen Спасибо, порыскаю
>>balepa, Гы :), да вы шутник
>>ZzzzZ Боюсь, что это будет работать не быстро :(

Да, ребят, попутный вопрос, как на API сохранить Bitmap в файл?


 
Poirot ©   (2006-04-17 15:02) [7]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_7zfp.asp


 
Sub_Black   (2006-04-17 15:11) [8]

>>Poirot Ок, спасибо!


 
MBo ©   (2006-04-17 15:26) [9]

>Bitmap=>Jpeg без модуля Jpeg
GDIPlus это умеет


 
DVM ©   (2006-04-17 15:27) [10]

Intel Jpeg Library - очень хорошая и быстрая библиотека.


 
Sub_Black   (2006-04-17 16:01) [11]

>>MBo а можно по подробнее про GDIPlus - а-то я слышал кое что, входит ли он в винду и где интерфейсы модулей взять?


 
Rouse_ ©   (2006-04-17 16:04) [12]

Jpeg.pas идет в составе дистрибутива (CD:\Info\Extras\Jpeg\) - вытащи оттуда необходимый код и не используй модуль :)


 
Sub_Black   (2006-04-17 16:07) [13]

>>DVM сейчас посмотрим на ентого зверя (IJL)
>>Rouse_ тоже идея, но по-моему Delphi включает в файл только те процедуры, которые реально используются, нет разве?


 
DVM ©   (2006-04-17 16:14) [14]


> Sub_Black   (17.04.06 16:07) [13]

http://www.ipcam.ru/IJL.ZIP - 1.5 и 2.0 версии библиотеки + заголовочные файлы + модуль-пример использования


 
Sub_Black   (2006-04-18 11:36) [15]

>>DVM СПАСИБИЩИ!
Спасибо, ребяты всем, очень было приятно получить столько полезных откликов ;)


 
XProger ©   (2006-04-18 12:09) [16]

Sub_Black, нет ничего невозможного...
Используй OleLoadPictureFile и OleSavePictureFile из oleaut32.dll


 
Sapersky   (2006-05-02 12:19) [17]

http://www.ipcam.ru/IJL.ZIP - 1.5 и 2.0 версии библиотеки

Наконец-то протестировал скачанную версию 2.0... и обнаружил, что она медленнее 1.5. Для 1.5 нужно было установить ключ в реестре, чтобы она поняла, с каким процессором имеет дело:

 CPUKey:=0;
 // determine Pentium, Pentium Pro, Pentium II
 if CPUInfo.VendorID="GenuineIntel" then
   if CPUInfo.Family=5 then CPUKey:=1 else if CPUInfo.Family=6 then
     if CPUInfo.Model > 1 then CPUKey:=4 else CPUKey:=2;

 // determine MMX, Pentium III, Pentium 4
 if(cfMMX in CPUInfo.Features)and(CPUKey < 3)then CPUKey:=3;
 if cfSSE in CPUInfo.Features then CPUKey:=5;
 if cfSSE2 in CPUInfo.Features then CPUKey:=6;

 RegCreateKeyEx(
   HKEY_LOCAL_MACHINE,"SOFTWARE\Intel Corporation\PLSuite\IJLib",0,nil,
   REG_OPTION_NON_VOLATILE,KEY_WRITE,nil,Key,@Dummy);

 RegSetValueEx(Key,"USECPU",0,REG_DWORD,@CPUKey,4);
 RegCloseKey(Key);

(из FastLIB"а - FastFiles.pas).

Возможно, для 2.0 что-то изменилось?
На сайте Intel, т.к. они прекратили разработку IJL как отдельной библиотеки, по этому поводу ничего нет. Или плохо искал?


 
DVM ©   (2006-05-03 10:25) [18]


> Sapersky   (02.05.06 12:19) [17]

Да, точно, медленнее. Зато в многопоточных приложениях работает стабильнее. Также лучше переваривает поврежденные jpeg-и

> Для 1.5 нужно было установить ключ в реестре, чтобы она
> поняла, с каким процессором имеет дело:

А для Athlon64 не в курсе, что лучше ставить в реестре?


 
DVM ©   (2006-05-03 11:07) [19]

Сам себе отвечу - для Athlon64 оптимально - 6


 
Sapersky   (2006-05-03 12:34) [20]

Зато в многопоточных приложениях работает стабильнее. Также лучше переваривает поврежденные jpeg-и

Сомнительно всё-таки, что Intel ради стабильности специально затормозила свою библиотеку (и с чего тогда размер вырос? я полагал - от увеличения количества оптимизированных под разные процессоры ветвей).

Ещё вдобавок к затормаживанию версия 2.0 отказывается грузить картинки по частям, с указанием Rect (ругается, что invalid jpeg properties).
Это наводит на мысль, что структура JpegProperties изменилась (или её выравнивание?). Так же как и положение/значение ключа в реестре. И что где-то должны существовать обновлённые заголовки... документация какая-нибудь...

А ту скорость, которую мы сейчас имеем с версией 2.0, можно получить и от OleLoadPicture. Безо всяких дополнительных DLL. Правда, с многопоточностью и повреждёнными картинками не тестировал.


 
DVM ©   (2006-05-03 14:00) [21]


> Sapersky   (03.05.06 12:34) [20]

вот последний заголовочный файл, что удалось найти:
http://www.informsystems.ru/files/ijl.h
1998-2006 стоит


 
DVM ©   (2006-05-03 14:08) [22]


> Так же как и положение/значение ключа в реестре.

в реестр новая версия библиотеки не лезет


 
Sapersky   (2006-05-03 16:52) [23]

Спасибо.
Посмотрел - вроде принципиальных изменений нет.
Проверил PROCESSOR_TYPE - у 1.5, как и положено, 6, у 2.0 - 0.
Есть подозрение - т.к. IJL теперь входит в состав платной IPP, определение процессора привязали к какой-то из IPP"шных DLL"ок (с динамической загрузкой), а получение через реестр вырезали.
К тому же и тип PROCESSOR_TYPE определён в заголовках ipp ("See ippdefs.h for details").


 
Woolen ©   (2006-05-04 22:31) [24]

Товарищи, опомнитесь, у него XP в требованиях. Какие библиотеки? Там вся работа с JPEG встроена ось. Про gdiplus.dll кто-нибудь слышал?


 
Sapersky   (2006-05-05 12:05) [25]

Про gdiplus.dll кто-нибудь слышал?

Слышали, что памяти много жрёт и тормозит... Самому протестировать пока руки не дошли.
И можно ли через gdiplus грузить jpeg не полностью, а произвольные фрагменты?


 
programania ©   (2006-05-05 21:27) [26]

3 примера из книги "программирование Win32 API в delphi":
показ кодеков, конвертирование между bmp jpg gif tiff png
изменение сжатия jpg и headers
http://programania.com/gdiplus.zip  160кб
и еще есть другие примеры
но почему-то 1-ый раз долго компилируются в delphi7
а потом все быстро


 
homm ©   (2006-05-05 23:23) [27]


> Bitmap=>Jpeg без модуля Jpeg соотвтственно.

поиши на http://bonanzas.rinet.ru/ да и вообще, смысл писать на API, когда есть KOL - все плюсы RAD и компактный, быстрый exe


 
Sapersky   (2006-05-06 13:09) [28]

Протестировал.
Загрузка jpeg 3072 * 4096 (Cel 2.8):

OleLoadPicture: 1170 мс
GDIPlus: 920 мс
IJL 1.5: 380 мс

А теперь попробуйте убедить меня использовать GDIPlus... :)

но почему-то 1-ый раз долго компилируются в delphi7

Тоже замечал такое с некоторыми своими программами... возможно, заголовки DirectX виноваты.


 
programania ©   (2006-05-06 13:37) [29]

Тоже испытал на C2.8  4000*2500 2мб
http://programania.com/test_jpg.zip  2кб

IJL15.DLL                  430 мСек
IJL20.DLL                  650 мСек
GDI+ часть картинки  540 мСек
GDI+ вся                  790 мСек
Delphi Jpeg              1800 мСек

>Sapersky   (06.05.06 13:09) [28]
>А теперь попробуйте убедить меня использовать GDIPlus... :)

Для нее не нужна dll она есть в windows
и в ней есть множество процедур например
качественной трансформации и масштабирования изображений
и не только jpg


 
Sapersky   (2006-05-06 14:55) [30]

Такое ощущение, что каждый немного "подтянул" результаты в сторону любимой библиотеки :)
В общем использовать то или другое - дело вкуса...
Добавлю только, что "есть в windows" означает "есть в windows XP". Тогда как сопоставимая по скорости OleLoadPicture работает и в 98. Безо всяких DLL и линкуемых obj.
А что касается IJL ... если уж начали меряться скоростью загрузки фрагментов... так вот, загрузка фрагмента картинки 532 * 336 с отступом 300 * 300... 35 мс (IJL 1.5).
Задать загружаемый прямоугольник можно через TJPEG_PROPERTIES.


 
programania ©   (2006-05-07 00:00) [31]

>Такое ощущение, что каждый немного "подтянул" результаты в сторону любимой библиотеки :)

У меня результат IJL без изменения реестра, с изменением раза в 2 быстрее,
но не нравится мне менять реестр и зависеть от других программ и процессора
и хотя значение CPUKey=6 одинаково действует на Celeron и Atlon64
но ведь все какие есть и будут не проверишь
и IJL не читает jpg типа 32bit CMYK, а GDI+ читает


 
DevilDevil ©   (2006-05-07 20:49) [32]

МАСТЕРА,
ссылка http://www.ipcam.ru/IJL.ZIP не работает!
Скиньте, пожалуйста, кто-гибудь на devil_home@mail.ru ,- в своё время очень интересовался сабжем, купил даже книжку "Методы Сжатия Данных", но жпег описан там очень плохо + реализовывать всё это самостоятельно - жуть!


 
DVM ©   (2006-05-07 21:48) [33]


> null

Положил обратно  http://ipcam.ru/files/ijl.zip
Добавил определение процессора

Все-таки Intel Jpeg Library вне конкуренции. В моих задачах в секунду удается декодировать более 150 jpeg 640*480 на приемлемом процессоре (P4 820 D).
Жаль что непонятно как работать с версией 2.0.


 
DevilDevil ©   (2006-05-08 02:54) [34]

Посмотрел ссылку...
Скорость может быть и большая, но требовалось, насколько я понял, не это...
Требовался менее громоздкий модуль, чем в Delphi (менее 100кб в экзешнике). Так вот ни IJL, ни GDI+ этому условию не удовлетворяют. Кроме того заставляют таскать с собой dll

...Щас начнут писать, что GDIPlus.dll идёт вместе с Виндой... Не стоит


 
Sapersky   (2006-05-08 10:10) [35]

Требовался менее громоздкий модуль, чем в Delphi

Я уже два раза упоминал в этой ветке OleLoadPicture ([20], [30]). И ещё XProger в [16].
Пример с KOL.PBitmap (TinyPictures) здесь:
http://www.homm86.narod.ru
У меня есть c TFastDIB.


 
DVM ©   (2006-05-08 11:39) [36]


> Требовался менее громоздкий модуль, чем в Delphi (менее
> 100кб в экзешнике). Так вот ни IJL, ни GDI+ этому условию
> не удовлетворяют. Кроме того заставляют таскать с собой
> dll

Я без проблем могу написать приложение килобайт на 15-20, которое будет работать с IJL. А dll - недостаток небольшой.


 
Мефисто   (2006-05-08 12:41) [37]

DevilDevil  ©   (08.05.06 02:54) [34]

Ставить рекорды на уменьшение размера ПО у народа чето никак не пропадает. К чему бы это? Времена DOS уже как вроде прошли...


 
antonn ©   (2006-05-08 13:59) [38]

Мефисто   (08.05.06 12:41) [37]
да еще и упаковщиками увлекаются...


 
homm ©   (2006-05-08 14:56) [39]


>  [35] Sapersky   (08.05.06 10:10)

Читай внимательнее:
> Bitmap=>Jpeg без модуля Jpeg соотвтственно.


http://kolnmck.ru/files/components/graphics/koljpegobj.zip
DevilDevil уже ей пользется похоже :)


 
Sapersky   (2006-05-08 15:27) [40]

Опс, забыл :(
А если OleSavePictureFile? Я, правда, ни разу не пользовался...



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

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

Наверх




Память: 0.54 MB
Время: 0.047 c
15-1167401833
oldman
2006-12-29 17:17
2007.01.21
Вот тебе, бабушка и Новый Год... :(


15-1167064904
kaZaNoVa
2006-12-25 19:41
2007.01.21
Религия как модель счастливой жизни человека


2-1167913967
Chaval
2007-01-04 15:32
2007.01.21
Проблема с использованием функции GetDriveType


2-1167990875
forex
2007-01-05 12:54
2007.01.21
эмулятор командной строки


1-1164792622
Solov
2006-11-29 12:30
2007.01.21
Выделение Stringgrid





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