Как сохранить JPEG с 4-2-2 и высоким качеством в .net? - PullRequest
2 голосов
/ 17 октября 2010

Когда я сохраняю файл jpg с помощью bitmap.save, он сохраняется как 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

1 Ответ

3 голосов
/ 18 октября 2010

Невозможно изменить подвыборку цветности в GDI +:

Мне пришлось использовать сторонний инструмент (Leadtools RasterImage Library) для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...