(C# version of this article is here )
Here's the code! Too many people ask for this
Using this code you can save an image (System.Drawing.Image) item as a jpeg image, specifying the quality of it. Jpeg quality is the same as compression so the lower the quality, the smaller the file size. It's simple to use, ie just do this:
VB Code:
Dim myImage As Image = ' ... load the image somehow ' Save the image with a quality of 50% SaveJpeg(destImagePath, myImage, 50)
VB Code:
' Please do not remove :) ' Written by Kourosh Derakshan ' 'add this! Imports System.Drawing.Imaging ' Saves an image as a jpeg image, with the given quality ' Gets: ' path - Path to which the image would be saved. ' quality - An integer from 0 to 100, with 100 being the ' highest quality Public Shared Sub SaveJpeg(ByVal path As String, ByVal img As Image, ByVal quality As Long) If ((quality < 0) OrElse (quality > 100)) Then Throw New ArgumentOutOfRangeException("quality must be between 0 and 100.") End If ' Encoder parameter for image quality Dim qualityParam As New EncoderParameter(Encoder.Quality, quality) ' Jpeg image codec Dim jpegCodec As ImageCodecInfo = GetEncoderInfo("image/jpeg") Dim encoderParams As New EncoderParameters(1) encoderParams.Param(0) = qualityParam img.Save(path, jpegCodec, encoderParams) End Sub ' Returns the image codec with the given mime type Private Shared Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo ' Get image codecs for all image formats Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders() ' Find the correct image codec For i As Integer = 0 To codecs.Length - 1 If (codecs(i).MimeType = mimeType) Then Return codecs(i) End If Next i Return Nothing End Function




Reply With Quote