当前位置: 首页 > 知识库问答 >
问题:

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

卫俊誉
2023-03-14

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

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();  
}  

共有1个答案

章承基
2023-03-14

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

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

 类似资料:
  • 我需要压缩一个有几个灰色16bit图像(多页)的tif文件。我已经尝试使用ImageIO如下所示:使用Java ImageIO进行Tiff压缩最初,tif文件中的每个图像都来自另一个Tiff文件。当我想使用压缩机时,我有以下选项: null

  • 我试图创建一个简单的WinForms查看器来显示NOVARAD pacs系统中生成的DICOM文件。我正在使用他们GitHub页面中的以下代码: 当我运行代码时,我得到以下错误: DICOM.Imaging.codec.DICOMcodecException:“不支持使用传输语法解码数据集:JPEG 2000图像压缩(仅无损)。” 我假设我需要从JPEG2000解压。fi-dicom不能做到这一点

  • 我希望加载一个dicom图像并将其保存到jpeg,如下面的fo-dicom文档代码所示: 但是,我正在从MemoryStream打开dicom文件,我想将jpeg保存为字节数组。这在FO-DICOM中是可能的吗?

  • 本文向大家介绍C#无损压缩图片,包括了C#无损压缩图片的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 我想上传图像到服务器。将我的图像转换为位图,但仍然出错。位图太大,无法上传到纹理中 如果我得到图片使用画廊意味着我得到错误的位图太大,不能上传到纹理 如果我得到图片使用相机意味着得到错误的 造成:java.lang.安全例外:权限拒绝:阅读<-plhd--1/>MediaProvider uri内容://media/外部/图像/媒体从pid=18253,uid=10257需要android.per

  • 我试图在Java程序中打开jpeg文件,并注意到ImageIO和Apache commons imaging library工具都无法打开图像。commons库向我显示了以下错误: “目前只支持顺序的基线JPEG” 提前致谢