.net – 以渐进格式保存JPG

前端之家收集整理的这篇文章主要介绍了.net – 以渐进格式保存JPG前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <Extension()> _
  2. Public Sub Save(ByVal b As Bitmap,ByVal FileName As String,ByVal Compression As Long,ByVal MimeType As String)
  3. Dim Params As EncoderParameters = New EncoderParameters(2)
  4. Dim CodecInfo As ImageCodecInfo = GetEncoderInfo(MimeType)
  5.  
  6. Params.Param(0) = New EncoderParameter(Encoder.RenderMethod,EncoderValue.RenderProgressive)
  7. Params.Param(1) = New EncoderParameter(Encoder.Quality,Compression)
  8.  
  9. b.Save(FileName,CodecInfo,Params)
  10. End Sub

这不起作用.它没有被保存为渐进式.我怎么能这样做,也可以指定通行证的数量.

解决方法

据我所知,它不受支持.我尝试过建议 herehere代码,并得到了这个C#代码
  1. using (Image source = Image.FromFile(@"D:\temp\test2.jpg")) {
  2.  
  3. ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders().First(c => c.MimeType == "image/jpeg");
  4.  
  5. EncoderParameters parameters = new EncoderParameters(3);
  6. parameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality,100L);
  7. parameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.ScanMethod,(int)EncoderValue.ScanMethodInterlaced);
  8. parameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod,(int)EncoderValue.RenderProgressive);
  9.  
  10. source.Save(@"D:\temp\saved.jpg",codec,parameters);
  11. }

设置隔行和逐行模式,它仍然保存常规基线JPEG.我尝试了任何设置和其他设置(非隔行扫描和非渐进式)的任意组合,并且在生成的图像文件中根本没有看到任何差异.

我没有发现任何人说他们实际上已经设法在.NET中保存渐进式JPEG的任何回复.

ScanMethodInterlaced和RenderProgressive参数值仅描述为“未在GDI版本1.0中使用”.在 the documentation.

猜你在找的HTML相关文章