我不能使用 jai-imageio / jai-imageio-jpeg2000
I can't use jai-imageio / jai-imageio-jpeg2000
我正在尝试使用原始 java.net 项目 jai-imageio-core(上游不再可用)的社区分支,并用它来编写 jpeg2000 图像。核心 imageIO 项目的分支位于:here
jpeg2000 spi 位于:here
我只是想 运行 jpeg2000 spi 最简单的测试之一:
IIORegistry registry = IIORegistry.getDefaultInstance();
registry.registerServiceProvider(new com.github.jaiimageio.jpeg2000.impl.J2KImageReaderSpi());
String[] suff = ImageIO.getWriterFileSuffixes();
Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("jp2");
但是它没有找到任何可以处理这个 jp2 扩展名的 ImageWriter。但是,它在 J2KImageReaderSpi
class.
中正确定义
我检测到的是 JVM(我使用的是 Java 8)不使用 imageio 的分支,而是使用 JDK 默认的 imageio 版本。这可能是我的问题的原因。我做错了什么?
registry.registerServiceProvider(new J2KImageReaderSpi());
What did I do wrong?
您正在注册 J2KImageReaderSpi
(Reader),而您正在寻找 J2KWriter
(作家).
如果您想写入 JPEG2000,请尝试注册 J2KImageWriterSpi
:
registry.registerServiceProvider(new J2KImageWriterSpi());
虽然我认为如果 JAR 包含正确的 META-INF/services
条目并且您将 JAR 放在 class 路径上,这应该会自动发生。
我正在尝试使用原始 java.net 项目 jai-imageio-core(上游不再可用)的社区分支,并用它来编写 jpeg2000 图像。核心 imageIO 项目的分支位于:here
jpeg2000 spi 位于:here
我只是想 运行 jpeg2000 spi 最简单的测试之一:
IIORegistry registry = IIORegistry.getDefaultInstance();
registry.registerServiceProvider(new com.github.jaiimageio.jpeg2000.impl.J2KImageReaderSpi());
String[] suff = ImageIO.getWriterFileSuffixes();
Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("jp2");
但是它没有找到任何可以处理这个 jp2 扩展名的 ImageWriter。但是,它在 J2KImageReaderSpi
class.
我检测到的是 JVM(我使用的是 Java 8)不使用 imageio 的分支,而是使用 JDK 默认的 imageio 版本。这可能是我的问题的原因。我做错了什么?
registry.registerServiceProvider(new J2KImageReaderSpi());
What did I do wrong?
您正在注册 J2KImageReaderSpi
(Reader),而您正在寻找 J2KWriter
(作家).
如果您想写入 JPEG2000,请尝试注册 J2KImageWriterSpi
:
registry.registerServiceProvider(new J2KImageWriterSpi());
虽然我认为如果 JAR 包含正确的 META-INF/services
条目并且您将 JAR 放在 class 路径上,这应该会自动发生。