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
Freigeben: 2025-01-31 01:11:08
Original
464 Leute haben es durchsucht

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:

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;
}
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage