保存JPG逐行格式 [英] Save JPG in progressive format

查看:391
本文介绍了保存JPG逐行格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<Extension()> _
Public Sub Save(ByVal b As Bitmap, ByVal FileName As String, ByVal Compression As Long, ByVal MimeType As String)
    Dim Params As EncoderParameters = New EncoderParameters(2)
    Dim CodecInfo As ImageCodecInfo = GetEncoderInfo(MimeType)

    Params.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderProgressive)
    Params.Param(1) = New EncoderParameter(Encoder.Quality, Compression)

    b.Save(FileName, CodecInfo, Params)
End Sub

这是行不通的。它不保存为渐进式。我怎样才能做到这一点,也许还可以指定通行证的NR。??

this does not work. Its not saved as progressive. How can i do this, and maybe also specify the nr of passes.??

推荐答案

据我所知,它不支持。我曾尝试code建议这里和的这里,抵达此C#code:

As far as I can tell, it's not supported. I have tried code suggested here and here and arrived at this C# code:

using (Image source = Image.FromFile(@"D:\temp\test2.jpg")) {

  ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders().First(c => c.MimeType == "image/jpeg");

  EncoderParameters parameters = new EncoderParameters(3);
  parameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
  parameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.ScanMethod, (int)EncoderValue.ScanMethodInterlaced);
  parameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod, (int)EncoderValue.RenderProgressive);

  source.Save(@"D:\temp\saved.jpg", codec, parameters);
}

设置隔行和逐行模式,它仍然节省了常规的基线JPEG。我已经试过的任何设置及备选设置(非隔行和非逐行扫描)的任意组合,并没有看到任何差别所产生的图像文件中。

Setting both interlaced and progressive mode, it still saves a regular baseline JPEG. I have tried any combination of either setting and their alternative settings (non-interlaced and non-progressive), and haven't seen any difference at all in the resulting image file.

我还没有发现任何人说,他们实际上已经设法挽救一个渐进式JPEG .NET中的任何回应。

I haven't found any response from anyone saying that they have actually managed to save a progressive JPEG in .NET.

无论是 ScanMethodInterlaced RenderProgressive 参数值仅描述为不使用的GDI + 1.0版。在 文档

Both the ScanMethodInterlaced and RenderProgressive parameter values are described only as "Not used in GDI+ version 1.0." in the documentation.

这篇关于保存JPG逐行格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆