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

Вниз

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 вся ветка

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

Наверх




Память: 0.56 MB
Время: 0.053 c
15-1167181514
Янис Прасол
2006-12-27 04:05
2007.01.21
Виндоуз маздай, а линукс круче всех


4-1158067773
max1991
2006-09-12 17:29
2007.01.21
Икрнка в трее


8-1148563758
MetalFan
2006-05-25 17:29
2007.01.21
Пережать видео...


15-1167416437
Kolan
2006-12-29 21:20
2007.01.21
Где бы контролы для графиков взять?


2-1167353312
4ert
2006-12-29 03:48
2007.01.21
Помогите найти Ошибку!!!!!!!!!!!!!!!!!!!!!!