Heim >Backend-Entwicklung >C++ >Wie kann man eine hochwertige Bildgröße in C#erreichen?

Wie kann man eine hochwertige Bildgröße in C#erreichen?

Susan Sarandon
Susan SarandonOriginal
2025-01-31 01:11:08400Durchsuche

How to Achieve High-Quality Image Resizing in C#?

Bild optimieren Bild Die Größe in C#

Effizient die Größe der Größe in C# -Anwendungen erfordert eine sorgfältige Manipulation der Bildeigenschaften. Während Sie über Size, Width und Height auf Dimensionen zugreifen, ist dies nicht der effektivste Ansatz für die Qualitätsänderung.

überlegene Größengrößentechniken

Für die Skalierung von Bild mit hohem Fidelity-Bild liefert die folgende C# -Funktion eine robuste Lösung:

<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);

    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>

Kritische Faktoren für die Qualitätsänderung

  • WrapMode.TileFlipXY: eliminiert Kantenartefakte ("Ghosting") durch Spiegelung des Bildes.
  • SetResolution: behält den ursprünglichen DPI bei, um eine konsistente Bildschärfe unabhängig von Größenänderungen zu gewährleisten.
  • Kompositionseinstellungen: Pixelmischung und Rendering für überlegene Ergebnisse präzise.
  • .
  • InterpolationMode.HighQualityBicubic :
  • verwendet einen hochwertigen Algorithmus für glattere Skalierungsübergänge.
  • Glättung und Pixelversetzt:
  • Minimieren

Schlussfolgerung

Dieser raffinierte Ansatz garantiert eine qualitativ hochwertige Bildgröße in C#. Das Seitenverhältnis kann bei Bedarf als separates Merkmal hinzugefügt werden.

Das obige ist der detaillierte Inhalt vonWie kann man eine hochwertige Bildgröße in C#erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn