如何实现jpeg无损? [英] How to achieve jpeg lossless?
本文介绍了如何实现jpeg无损?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在Java中实现jpeg-lossess?
How to achieve jpeg-lossess in Java?
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):
using JAI
(version 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的类型。
Standard java does not have a compression type for JPEG-LS.
您可以下载并使用JAI(Java高级成像)API,虽然我相信它包含这样的压缩类型。
You can to download and use the JAI (Java Advanced Imaging) API though which I beleive includes such a compression type.
可从此处下载
这篇关于如何实现jpeg无损?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文