Heim > Backend-Entwicklung > C++ > Wie kann ich Bilder in C# für hohe Qualität ändern?

Wie kann ich Bilder in C# für hohe Qualität ändern?

DDD
Freigeben: 2025-01-31 01:16:08
Original
323 Leute haben es durchsucht

How to Resize Images in C# for High Quality?

C#hohe Bildzoom -Methode

Es ist nicht einfach, die Bildgröße beim Laufen in C#anzupassen. Obwohl ,

und

Eigenschaften hat, passt die Einstellung dieser Attribute die Bildgröße nicht an. System.Drawing.Image Size Um die Größe des Bildes anzupassen, müssen Sie die neue Größe verwenden, um ein neues Width Objekt zu erstellen und das Originalbild an das Objekt zu zeichnen. Sie können den folgenden Code zum Implementieren verwenden: Height

Diese Methode führt jedoch zu einem Rückgang der Bildqualität. Um einen hohen Zoom zu erreichen, ist die Bitmap -Klasse erforderlich. So bedienen Sie das folgende Beispiel:

Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));
Nach dem Login kopieren

Diese Funktion bietet auf folgende Weise einen hohen Zoom: Graphics

/// <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;
}
Nach dem Login kopieren
setzen Sie auf

, um schwere Schatten um die Bildgrenze zu verhindern.

    Setzen Sie das Zielbild
  • , um DPI zu halten. WrapMode TileFlipXY Verwenden Sie hoch -Qualität
  • ,
  • , Resolution und
  • Einstellungen.
  • Compositing Interpolation Andere Überlegungen umfassen das Längsschnittverhältnis des Bildes (für Leser als Übungen reserviert) und die Falle, bei der das Bild beim Speichern des Bildes das Bild im Bild vergrößert. Smoothing

Das obige ist der detaillierte Inhalt vonWie kann ich Bilder in C# für hohe Qualität ändern?. 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