当前位置: 首页 > 面试题库 >

如何实现jpeg无损?

柯凯旋
2023-03-14
问题内容

如何在Java中实现jpeg-lossess?

ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName("JPEG-LS").next();
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionType("JPEG-LS");
writer.setOutput(ImageIO.createImageOutputStream(new File("C:\\Users\\RileyRen\\Desktop\\123.jpg")));
writer.write(null, new IIOImage(subBufferedImage, null, null), param);

会抛出异常:

Exception in thread "main" 
    java.lang.IllegalArgumentException: Unknown compression type!
    at javax.imageio.ImageWriteParam.setCompressionType(ImageWriteParam.java:1041)
    at com.demandforce.ImageCrop.main(ImageCrop.java:59)

param.getCompressionTypes()只打印[JPEG]

使用JAI(版本1.1.3):

    PlanarImage input = JAI.create("fileload", "C:\\Users\\RileyRen\\Desktop\\test.jpg");
    ParameterBlock pb = new ParameterBlock();
    pb.addSource(input);
    pb.add(x);
    pb.add(y);
    pb.add(width);
    pb.add(height);
    PlanarImage output = JAI.create("crop",pb,null);
    JAI.create("filestore",output,"C:\\Users\\RileyRen\\Desktop\\123.jpg","JPEG-LS");

还抛出异常:

Exception in thread "main" 
    java.lang.IllegalArgumentException: FileStore The specified format has no associated registered ImageCodec.
    at javax.media.jai.JAI.createNS(JAI.java:1087)
    at javax.media.jai.JAI.create(JAI.java:973)
    at javax.media.jai.JAI.create(JAI.java:1621)
    at com.demandforce.ImageCrop.main(ImageCrop.java:103)

你能写个样本吗?


问题答案:

标准Java没有JPEG-LS的压缩类型。

您可以下载并使用JAI(Java高级映像)API,尽管我相信它包括这样的压缩类型。

可以从这里下载



 类似资料:
  • 所以我再次提出这个问题,希望能从大家那里有更好的解释和指导… 在执行所提出的解决方案时,我遇到的问题很少: 1)根据Jonathan Feinberg提出的答案,需要安装JAI和JAI/imageIO,但在安装了这两个文件后,仍然无法导入NetBean7.2中的文件。NetBean7.2仍然建议导入默认的imageIO库。 3)我也尝试了其他方法,例如使用BufferedOutputStream方

  • 我有一个关于DICOM标准和libjpeg库的问题。在DICOM标准中,除其他外,还有传输语法: JPEG无损、非分层、一阶预测(过程14[选择值1]):用于无损JPEG图像压缩的默认传输语法 据我所知,该传输语法与JPEG-1 LOSSSLES格式相对应。我开始研究libjpeg库,我发现它不支持(?)无损JPEG,如这里所述:DICOM中的JPEG无损 另外,在libjpeg文档中有一段话是这

  • 在DICOM规范中,传输语法之一是,定义为。 是否可以在Python中读或写这种格式?查看文件中的枕头,我不清楚是否支持这种格式。 这个帖子有点相关。

  • 我正在使用Java压缩一个图像。

  • import "image/jpeg" jpeg包实现了jpeg格式图像的编解码。JPEG格式参见http://www.w3.org/Graphics/JPEG/itu-t81.pdf Constants type Reader type FormatError func (e FormatError) Error() string type UnsupportedError func (e Un

  • 我想将更改为。我想使用中的的来确定用户是否滚动到列表的末尾。 我如何知道用户是否滚动到列表的末尾,以便我可以从REST服务中获取新的数据?