代码之家  ›  专栏  ›  技术社区  ›  xpda

如何在.net中保存具有4-2-2和高质量的jpeg?

  •  2
  • xpda  · 技术社区  · 15 年前

    当我使用bitmap.save保存jpg文件时,当我指定编码器和质量时,它会保存为jpeg 4-1-1,而当我不指定编码器和质量时,它会保存为4-2-2。我想将其保存为4-2-2,质量高于默认值。可以使用bitmap.save吗?我用4-1-1储蓄有什么损失吗?

    Dim bmp As Bitmap
    Dim ep As New EncoderParameters(1)
    Dim sysCodecs() As ImageCodecInfo
    Dim jpgCodec, cdc As ImageCodecInfo
    
    sysCodecs = ImageCodecInfo.GetImageEncoders()
    
    ' get jpg codec
    jpgCodec = Nothing
    For Each cdc In sysCodecs
      If String.Compare(cdc.MimeType, "image/jpeg", True) = 0 Then
        jpgCodec = cdc
        Exit For
      End If
    Next cdc
    
    If jpgCodec IsNot Nothing Then
      ep.Param(0) = New EncoderParameter(Encoder.Quality, 97)
      bmp = Bitmap.FromFile(filename)
      bmp.Save(outname, jpgCodec, ep) ' saves 4-1-1
      bmp.Save(outname) ' saves 4-2-2
    end if