Ciao, posso dirti come ho fatto io in vb.net.
Con questa funzione reperisco le informazioni per il codec di salvataggio
Friend Function GetEncoderInfo(ByVal mimeType As String) As Imaging.ImageCodecInfo
Dim j As Integer
Dim encoders() As Imaging.ImageCodecInfo
encoders = Imaging.ImageCodecInfo.GetImageEncoders()
j = 0
While j < encoders.Length
If encoders(j).MimeType = mimeType Then
Return encoders(j)
End If
j += 1
End While
Return Nothing
End Function
Poi nel flusso del programma inserisco questo per effettuare il salvataggio:
' Puoi impostare la qualità del salvataggio compresa tra 10 e 100
Dim qualityParam As New Imaging.EncoderParameter(Imaging.Encoder.Quality, 65)
Dim jpegCodec As Imaging.ImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim encoderParams As New Imaging.EncoderParameters(1)
encoderParams.Param(0) = qualityParam
_bitmap.Save(IO.Path.Combine(Percorso, nomefile ".jpg"), jpegCodec, encoderParams)
_bitmap.Dispose()
Variando il valore numerico di QualityParam puoi impostare il livello di compressione del file e quindi la sua grandezza in kb.
Tradurre questo in C# è facile...
Ciao