背景:在我的项目中,我必须从网络上获取图像并在存储之前调整它们的大小。为此,我使用 imgscalr 来调整图片大小,它使用 Java 的 ImageIO API。
问题是 ImageIO API 似乎不支持 JPEG 的 CMYK 颜色空间,因此它无法读取从我们的数据提供者获取的一些图片(我无法更改图片格式)。
为了添加对 CMYK 的支持,我找到了一个不错的 lib(我试图将其打包为 maven 工件并进行一些增强),它是一个 ImageReaderSpi 扩展。
到现在为止还挺好。我面临的问题是 ImageIO API 似乎没有加载扩展,它的行为就好像它不存在一样。
我创建了一个 Maven 工件,它是一个简单的 jar,其中包含扩展实现和META-INF/services/javax.imageio.spi.ImageReaderSpi
包含实现 Spi 的类的名称的文件。
我确定 jar 在类路径中,因为我在其中使用了一个帮助程序并且它被找到了。
作为记录,我正在将项目(WAR)部署到 Tomcat 中,扩展 jar 位于WEB-INF/lib
文件夹中。
jar 源代码可在此处获得 META-INF 文件包含在 maven 构建期间(@MetaInfServices 注释执行此操作)。
我被困在这里,我认为我做对了,这就是为什么我在寻求你的帮助!