对于 ImageIO 类,方法 getImageWritersByFormatName api
https://docs.oracle.com/javase/8/docs/api/javax/imageio/ImageIO.html
它说
返回一个 Iterator,其中包含所有当前已注册的、声称能够对指定格式进行编码的 ImageWriter。
但是如何知道我的服务器有哪些已注册的 ImageWriter?特别是我想知道我的服务器是否已注册 WMF 图像写入器。
如果没有,如何注册 WMF 图像写入器?
答案很简单,只需按照文档建议的那样做即可:
当您在服务器上运行此代码时,它将打印已安装的 WMF 编写器。但最有可能的是,您会发现您的服务器没有安装任何 WMF 编写器。
假设您所说的“WMF”是指Windows 图元文件格式,我怀疑您找不到任何 ImageIO 写入器插件。WMF 主要用于以绘图命令的形式存储“矢量”图形,但这在为光栅图形设计的 ImageIO API 中是不可能的。如果您确实需要,可以创建一个写入器实现来存储包含位图的简单 WMF,但在这些情况下,使用简单的光栅格式(如 BMP 或 PNG)会更有意义。
通常,ImageIO 插件(如
ImageWriter
s 和s)通过JAR 服务提供商 (SPI)ImageReader
机制安装。也可以在运行时注册插件,使用类似以下代码:(其中是支持 WMF 格式的 的
WMFWriterSpi
服务提供商)。ImageWriterSpi
ImageWriter