ホームページ >バックエンド開発 >C++ >C#で画像を効率的にサイズ変更する方法は?

C#で画像を効率的にサイズ変更する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-31 00:56:08311ブラウズ

高効率C#画像サイズの方法

メソッド

質問:

System.Drawing.Imageクラスは、サイズ、幅、および高さGET()プロパティを提供します。しかし、C#で実行するときに画像オブジェクトのサイズを調整する方法は?

解決策:

size()の重い負荷を使用して、新しい画像を作成します。サイズが調整された画像オブジェクトが生成されます。

ただし、次の機能を使用して、高品質の調整サイズを実現できます。

その他の詳細:
<code class="language-csharp">// objImage 是原始 Image
Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));</code>

<code class="language-csharp">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);

    // 使用 Graphics 类绘制调整大小的图像
    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>
境界境界の外側の透明なピクセルを防ぎ、調整された画像に影響します。

DPIの保持は、物理学のサイズとは関係ありません。画像や印刷のサイズを縮小すると、品質を改善できます。

さまざまな合成、補間、スムージング、およびPixelOffSetModeセット制御を制御して、大小の画像のレンダリング品質を調整します。
  • この関数は処理比を維持せず、開発者が独自に決定するためにそれを残します。 wrapMode.SetWrapMode(WrapMode.TileFlipXY)
  • destImage.SetResolution

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

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