如何在c#中减少j2k文件的大小?

时间:2014-04-01 07:22:20

标签: c# freeimage jpeg2000

我使用FreeImageNet.dll使用各种FREE_IMAGE_LOAD_FLAGS来压缩j2k文件(100KB)。

示例代码在这里。

      string fileName=abc.jpg;
      string outFileName=xyz.j2k;
      FREE_IMAGE_FORMAT imageFormat = FREE_IMAGE_FORMAT.FIF_J2K;

      dib = new FIBITMAP();
      dib = FreeImage.LoadEx(fileName, FREE_IMAGE_LOAD_FLAGS.DEFAULT);
      FreeImage.SaveEx(dib, outFileName, imageFormat,FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYSUPERB);
      dib.SetNull();

我得到了7KB压缩文件,在原始图像和压缩图像之间可以看到差异。

如何将图像压缩到30 KB,没有明显差异?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您将压缩定义为比率,JP2最多可以达到16:1。

这是一种有损压缩,因此并非所有图像都能在相同的压缩比下达到相同的美学质量。这取决于图像的内容。

设置只传入整数值1 - 16并将其转换为

FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JP2, dib, newName, (FREE_IMAGE_SAVE_FLAGS)Properties.Settings.Default.JPEG2000CompressionRateXto1);
相关问题