【发布时间】:2011-04-14 19:15:25
【问题描述】:
我正在尝试使用 JAI_ImageIO 库和以下 java 调用来解码无损 jpeg:
ImageIO.getImageReadersByFormatName("jpeg-lossless").hasNext()
结果为“空”。
注意:我已将 JAI_ImageIO jar 安装到我的 jre/lib/ext 目录中。
我不知道JPEG阅读器是否足以阅读无损jpeg,或者是否需要安装另一个阅读器。
当我枚举 FormatNames 时,即:
ImageIO.getReaderFormatNames()
我得到以下格式:
[raw, jpeg, tif, WBMP, PNM, JPG, DICOM, wbmp, JPEG, PNG, jpeg 2000,
tiff, BMP, JPEG2000, RAW, jpeg2000, GIF, TIF, TIFF, jpg, bmp, pnm,
png, JPEG 2000, gif]
当我尝试使用 JPEG2000 阅读器时,出现以下运行时异常:
java.lang.RuntimeException: File is neither valid JP2 file nor valid JPEG 2000 codestream
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.initializeRead(J2KReadState.java:696)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.<init>(J2KReadState.java:209)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageReader.read(J2KImageReader.java:449)
at javax.imageio.ImageReader.read(ImageReader.java:940)
当我尝试时
ImageIO.read(file)
我直接得到一个 org.dcm4cheri.image.ConfigurationException。
【问题讨论】:
-
无损 JPEG 是否需要单独的阅读器?我认为这样做的好处是任何 JPEG 阅读器都可以读取该文件。
-
JPEG 和 JPEG 2000 是完全不同的格式,只是名称相似。它们都有无损模式。
标签: java image-processing jpeg dicom