Get a Jpeg MemoryStream from a given bitmap and for specified compression rate
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
Public Module Bitmap
Public Function GetJpegStream(ByVal Bitmap As System.Drawing.Bitmap, ByVal Quality As Integer) As MemoryStream
If Bitmap Is Nothing Then Throw New Exception("No bitmap supplied for stream conversion")
If Quality < 0 Or Quality > 100 Then Throw New Exception("Invalid quality supplied for stream conversion")
Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()
Dim ici As ImageCodecInfo = Nothing
Dim codec As ImageCodecInfo
For Each codec In codecs
If codec.MimeType = "image/jpeg" Then
ici = codec
End If
Next codec
Dim EncoderParameters As New EncoderParameters
EncoderParameters.Param(0) = New EncoderParameter(Encoder.Quality, Quality)
Dim Stream As New MemoryStream
Bitmap.Save(Stream, ici, EncoderParameters)
Return Stream
End Function
End Module