Tác giả: Kourosh Derakshan
Mô tả: Save JPEG images tùy chỉnh chất lượng
Code VB.NET
- Dim myImage As Image = ' ... load the image somehow
- ' Save the image with a quality of 50%
- SaveJpeg(destImagePath, myImage, 50)
- ' 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
Code C#:
- Image myImage = //... load the image somehow
- // Save the image with a quality of 50%
- SaveJpeg (destImagePath, myImage, 50);
- // Please do not remove
- // Written by Kourosh Derakshan
- //
- //add this!
- using System.Drawing.Imaging;
- /// <summary>
- /// Saves an image as a jpeg image, with the given quality
- /// </summary>
- /// <param name="path">Path to which the image would be saved.</param>
- // <param name="quality">An integer from 0 to 100, with 100 being the
- /// highest quality</param>
- public static void SaveJpeg (string path, Image img, int quality)
- {
- if (quality<0 || quality>100)
- throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");
- // Encoder parameter for image quality
- EncoderParameter qualityParam =
- new EncoderParameter (Encoder.Quality, quality);
- // Jpeg image codec
- ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
- EncoderParameters encoderParams = new EncoderParameters(1);
- encoderParams.Param[0] = qualityParam;
- img.Save (path, jpegCodec, encoderParams);
- }
- /// <summary>
- /// Returns the image codec with the given mime type
- /// </summary>
- private static ImageCodecInfo GetEncoderInfo(string mimeType)
- {
- // Get image codecs for all image formats
- ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
- // Find the correct image codec
- for(int i=0; i<codecs.Length; i++)
- if(codecs.MimeType == mimeType)
- return codecs;
- return null;
- }