JAI 和 ImageIO for 64 bit Windows
我搜索了JAI和ImageIO库的64位窗口,但我没有找到这些的任何版本。最后 64 位赢得 Java Bug 跟踪系统上的 vesion 请求 6-7 年前.
我认为,jai的开发人员不会为win64发布任何版本。:(
我的问题是,我们可以从他们的源代码为64位窗口构建jai和imadiio吗?如何?
多谢。。。
我搜索了JAI和ImageIO库的64位窗口,但我没有找到这些的任何版本。最后 64 位赢得 Java Bug 跟踪系统上的 vesion 请求 6-7 年前.
我认为,jai的开发人员不会为win64发布任何版本。:(
我的问题是,我们可以从他们的源代码为64位窗口构建jai和imadiio吗?如何?
多谢。。。
从源语言的角度来看,JAI和JAI图像I / O有两个部分,java和C / C++。java部分是免费的(作为免费的啤酒),你可以从 java.net 下载和编译,但这是java源代码,无论架构如何(x86,x64)。
C/C++源代码不是由 SUN 发布的,因此您只能获得 Win32 和其他平台的编译.dll。由于几个原因,此源代码未发布,一个是SUN使用来自第三方的源代码并有权使用它,而不是(自由地)重新分发它。
三年前,我们联系了SUN,了解JAI Image I / O JPEG 12bit编解码器中存在的几个错误,他们提供了一些选项。如果这些错误对我们来说很紧急,我们可以提供C / C++程序员来解决它们,如果我们签署了NDA(保密协议),SUN会向我们提供codecLib的源代码。另一种选择是等待SUN解决问题。我们为分配给 bug 的 SUN 工程师提供帮助,他在不到一周的时间内就解决了。
现在情况似乎有所不同,因为JAI和相关项目(图像I / O)似乎不再处于活动状态,即没有人在处理它们(新版本,错误修复)。
因此,如果您需要新版本,JAI最终会遇到很多问题。
您可以使用 32 位 JRE 在 Windows 7 x64 等 64 位操作系统中使用 JAI 的程序。
不幸的是,您不能在64位JRE中使用JAI或图像I / O,因为您只能使用纯Java中提供的功能,并且在图像I / O中丢失了大多数编解码器。
另一个问题是你真正需要JAI的是什么。JAI可以使用100%纯Java实现(软件版本),速度较慢,但解决了x64的问题。JAI Image I/O也有一些功能可以由100%纯Java实现,但大多数功能,如编解码器,需要像codedLib这样的本机dll。
试图在Windows 7上使用其本机MediaLib Windows DLL检查32位Java的生产力。它表明比单独的64位纯Java代码略慢(5-10%)。
我用中值滤波测试了JAI,以获得相当大的1位黑白图像(尺寸为9000 x 2500像素)。使用中值筛选器 7 x 7,使用 32 位本机 Windows 库 (DLL) 的进程需要 17 秒,使用不带 DLL 的纯 64 位 Java 的进程需要 15 秒。测试重复 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