以渐进方式保存JPEG格式的文件

8

这个问题已经在该线程上提出:

保存渐进式JPG

然而,标记的答案基本上是说不能做到。但是,考虑到其他软件可以实现,C#肯定也能做到。

有没有办法做到这一点?


我会从检查一些实现此功能的C++代码开始。请参阅http://www.jonolick.com/uploads/7/9/2/1/7921194/jo_jpeg.cpp(代码看起来很糟糕,但它能正常工作)。 - 3Dave
1个回答

6

Magick.NET可以通过如下代码实现

using (MagickImage image = new MagickImage("input.png"))
{
  // Set the format and write to a stream so ImageMagick won't detect the file type.
  image.Format = MagickFormat.Pjpeg;
  using (FileStream fs = new FileStream("output.jpg", FileMode.Create))
  {
    image.Write(fs);
  }
  // Write to .jpg file
  image.Write("PJEG:output.jpg");
  // Or to a .pjpeg file
  image.Write("output.pjpg");
}

您可以在这里找到更多详细信息。


这链接到ImageMagick库,它不是本地的。 - Katie Kilian
2
这并不是如此,但从早期的问题中可以清楚地看出,目前没有本地支持。在这种情况下,我不认为重新提问这个问题有什么意义。 - Zoltan Kochan
@CharlieKilian,“本地”指的是直接从C#代码中运行,而不是使用外部可执行文件。我明白这可能会引起误解,现在我已经更新了标题。 - Karl Cassar
1
@ZoltánKocsán 谢谢!我刚试了一下,非常好用! - Karl Cassar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接