Подтвердить что ты не робот

JAI и ImageIO для 64-битных Windows

я искал JAI и библиотеку ImageIO для 64-битных окон, но я не нашел их. Последний запрос на бит-бит 64 бит на систему отслеживания ошибок Java 6-7 лет назад.

Я думаю, разработчики jai не выпустят никакой версии для win64.: (

Мой вопрос: можем ли мы построить jai и imageio из их источника для 64-битных окон, возможно ли это? Как?

Большое спасибо...

4b9b3361

Ответ 1

JAI и JAI Image I/O имеют две части с точки зрения исходного языка, java и C/С++. Часть java бесплатна (как бесплатное пиво), и вы можете загружать и компилировать с java.net, но это источник java, независимо от архитектуры (x86, x64).

Исходный код C/С++ не выпущен SUN, поэтому вы получаете только компилированную .dll для Win32 и других платформ. Этот исходный код не освобождается по нескольким причинам: один из SUN использует источник от третьих лиц и имеет право использовать его, а не (свободно) перераспределять его.

Мы связываемся с SUN три года назад для нескольких ошибок, присутствующих в 12-битном кодеке JAI Image I/O JPEG, и они дают некоторые варианты. Если эти ошибки срочны для нас, мы можем предоставить программистам C/С++ для их решения, SUN предоставит нам исходный код codecLib, если мы подпишем соглашение NDA (соглашение о неразглашении). Другой вариант - ждать, пока SUN решит проблемы. Мы оказываем помощь инженеру SUN, назначенному на ошибки, и он решил менее чем за неделю.

Теперь ситуация выглядит по-другому, поскольку JAI и связанные с ней проекты (Image I/O), похоже, больше не активны, т.е. никто не работает над ними (новые выпуски, исправления ошибок).

Итак, у вас будет много проблем с JAI, если вам нужны новые версии.

Вы можете использовать 32-битную JRE для запуска программ, которые используют JAI в 64-битной ОС, например Windows 7 x64.

К сожалению, вы не можете использовать JAI или Image I/O в 64-битной JRE, так как вы можете использовать только функциональные возможности, доступные в чистой Java, и потеряли большинство кодеков в Image I/O.

Другой вопрос - что вам действительно нужно от JAI. JAI можно использовать с использованием 100% чистой реализации Java (версия программного обеспечения), медленнее, но решает проблемы x64. JAI Image I/O также имеет некоторые функциональные возможности, которые могут быть реализованы на 100% чистой Java, но большинство из них, например кодеки, требуют встроенной DLL, такой как codedLib.

Ответ 2

пытался проверить производительность 32-разрядной Java со своей родной DLL DLL MediaLib в Windows 7. Он показывает, что он немного медленнее (5-10%), только 64-битный Java-код.

Я тестировал JAI со срединной фильтрацией для довольно большого 1-битного ч/б изображения (размер 9000 x 2500 пикселей). С медианным фильтром 7 x 7 он стоит 17 секунд для обработки с 32-разрядными родными библиотеками Windows (DLL) и 15 секунд с чистой 64-разрядной Java без DLL. Тест повторяли 3-4 раза с очень похожими результатами синхронизации.

Отладочный вывод для 32-разрядного Java + родного MediaLib:

Raster path is "F:\Projects\Fadeev\listv.bmp"
Median size value set to 7
Output file will be saved to input directory
Data color set to default value java.awt.Color[r=255,g=0,b=0] (RED)
Color distance set to default value 20,00
New color set to default value java.awt.Color[r=255,g=0,b=0] (RED)
Image ( 9000 x 2461 ) read in 00:00:00.038
Image color quantized at 00:00:01.400
**Image filtered by () at 00:00:17.531** (MediaLib works now and here!!!)
Image stored at 00:00:00.356 (storing in PNG!)
Total time is 00:00:19.325

Отладочный вывод для 64-битной чистой Java:

Raster path is "F:\Projects\Fadeev\listv.bmp"
Median size value set to 7
Output file will be saved to input directory
Data color set to default value java.awt.Color[r=255,g=0,b=0] (RED)
Color distance set to default value 20,00
New color set to default value java.awt.Color[r=255,g=0,b=0] (RED)
Image ( 9000 x 2461 ) read in 00:00:00.038
Image color quantized at 00:00:00.910
Error: Could not load mediaLib accelerator wrapper classes. Continuing in pure Java mode.
Occurs in: com.sun.media.jai.mlib.MediaLibAccessor   com.sun.media.jai.mlib.MediaLibLoadException
**Image filtered by () at 00:00:13.802**
Image stored at 00:00:00.414
Total time is 00:00:15.164