首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将jpeg图像转换为jpeg2000无损压缩图像?

如何将jpeg图像转换为jpeg2000无损压缩图像?
EN

Stack Overflow用户
提问于 2014-09-04 17:30:32
回答 2查看 3.4K关注 0票数 2

我正在使用java压缩图像。

我想用jpeg2000无损压缩图像。

请建议解决方案。

代码语言:javascript
复制
File imageFile = new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg");
File compressedImageFile = new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\decompjai.jpg");

InputStream is = new FileInputStream(imageFile);
OutputStream os = new FileOutputStream(compressedImageFile);

BufferedImage image = ImageIO.read(is);

// get all image writers for JPG format
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jp2k");

if (!writers.hasNext())
    throw new IllegalStateException("No writers found");

ImageWriter writer = (ImageWriter) writers.next();

J2KImageWriter
J2KImageWriteParam jwp =  (J2KImageWriteParam) writer.getDefaultWriteParam();
// J2KImageWriteParam jwp =  new J2KImageWriteParam();
boolean lossless = true;
jwp.setLossless(lossless);  

// jwp.setFilter(J2KImageWriteParam.FILTER_97);  
if (!lossless) {  
      jwp.setEncodingRate(8.0 / 2);  
}  

// ByteArrayOutputStream baos = new ByteArrayOutputStream();  
try {  
      ImageOutputStream ios = ImageIO.createImageOutputStream(os);  
      writer.setOutput(ios);  
      writer.write(null, new IIOImage(image, null, null), jwp);  
      ios.flush();  
      ios.close();  
} catch (IOException e) {  
      e.printStackTrace();  
}  

我正在尝试上面的代码。

EN

回答 2

Stack Overflow用户

发布于 2014-09-04 17:37:17

查看this JPEG2000 Java编码器/解码器项目。(你可以找到源代码here)

票数 2
EN

Stack Overflow用户

发布于 2014-09-04 17:40:46

我首先会尝试javax.ImageIO,因为您的系统可能有一个JPEG2000格式的提供商。

否则:http://www.deic.uab.cat/~francesc/显然是针对java的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25661897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档