ホームページ >バックエンド開発 >C++ >高品質のためにC#で画像をサイズ変更する方法は?

高品質のためにC#で画像をサイズ変更する方法は?

DDD
DDDオリジナル
2025-01-31 01:16:08329ブラウズ

How to Resize Images in C# for High Quality?

c#high-品質の画像ズームメソッド

C#で実行するときに画像サイズを調整するのは簡単ではありません。 には、、

プロパティがありますが、これらの属性の設定は画像サイズを調整しません。

System.Drawing.Image画像のサイズを調整するには、新しいサイズを使用して新しいSizeオブジェクトを作成し、オブジェクトに元の画像を描画する必要があります。次のコードを使用して実装できます Width ただし、この方法は画質の低下につながります。高品質のズームを達成するには、Heightクラスが必要です。以下の例を操作する方法:

Bitmapこの関数は、次の方法で高品質のズームを提供します。

<code class="language-csharp">Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));</code>
をに設定して、画像の境界の周りの重い影を防ぎます。

Graphicsターゲット画像を設定して

DPIを保持します。
<code class="language-csharp">/// <summary>
/// 将图像调整为指定宽度和高度。
/// </summary>
/// <param name="image">要调整大小的图像。</param>
/// <param name="width">要调整到的宽度。</param>
/// <param name="height">要调整到的高度。</param>
/// <returns>调整大小后的图像。</returns>
public static Bitmap ResizeImage(Image image, int width, int height)
{
    var destRect = new Rectangle(0, 0, width, height);
    var destImage = new Bitmap(width, height);

    destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);

    using (var graphics = Graphics.FromImage(destImage))
    {
        graphics.CompositingMode = CompositingMode.SourceCopy;
        graphics.CompositingQuality = CompositingQuality.HighQuality;
        graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
        graphics.SmoothingMode = SmoothingMode.HighQuality;
        graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;

        using (var wrapMode = new ImageAttributes())
        {
            wrapMode.SetWrapMode(WrapMode.TileFlipXY);
            graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
        }
    }

    return destImage;
}</code>

high high couretivality

  • WrapMode設定を使用します。 TileFlipXY
  • その他の考慮事項には、画像の縦断比(読者のためにエクササイズとして予約されています)と、画像を保存するときに画像が画像をズームするトラップが含まれます。 Resolution

以上が高品質のためにC#で画像をサイズ変更する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。