C#で画像を圧縮する方法は何ですか?

C#では、画像の圧縮を実現するためにSystem.Drawing名前空間のBitmapクラスを使用することができます。以下は、Bitmapクラスを使用して画像を圧縮する方法を示す簡単なサンプルコードです:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public static void CompressImage(string sourceImagePath, string outputImagePath, long quality)
{
    using (Bitmap sourceImage = new Bitmap(sourceImagePath))
    {
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        EncoderParameters encoderParameters = new EncoderParameters(1);
        encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, quality);

        sourceImage.Save(outputImagePath, jpgEncoder, encoderParameters);
    }
}

private static ImageCodecInfo GetEncoder(ImageFormat format)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

    foreach (var codec in codecs)
    {
        if (codec.FormatID == format.Guid)
        {
            return codec;
        }
    }

    return null;
}

上記の例では、CompressImageメソッドは3つのパラメータを受け取ります:元画像のパスsourceImagePath、圧縮後の画像の保存パスoutputImagePath、および圧縮品質quality。メソッド内では、まずBitmapクラスを使用して元画像をロードし、次に圧縮エンコーダーとパラメータを設定し、最終的に圧縮した画像を指定されたパスに保存します。

重要なのは、qualityパラメータの値の範囲は通常0から100の間であり、値が大きいほど画像の品質が高くなります。適切な圧縮効果を得るために、実際のニーズに合わせてqualityの値を調整することができます。

コメントを残す 0

Your email address will not be published. Required fields are marked *