Bilder in c# skalieren

Wir erhalten oft Bilder mit einer Größe, die nicht unseren Anforderungen entspricht, daher müssen wir sie entsprechend skalieren. In diesem Artikel erfahren Sie, wie Sie die Größe von Bildern mithilfe von C# in Ihren .NET Anwendungen ändern. Außerdem erfahren Sie, wie Sie die Größe von Rasterbildern und Vektorbildern explizit ändern können.

.NET API zum Ändern der Bildgröße

Um Bilder zu skalieren. wir werden Aspose.Imaging for .NET verwenden. Es ist eine leistungsstarke Bildverarbeitungs-API zur Bearbeitung verschiedener Arten von Raster und Vektorbildern. Sie können die DLL der API herunterladen oder über NuGet installieren.

PM> Install-Package Aspose.Imaging

Größe von Rasterbildern mit C# ändern

Es gibt zwei Methoden zum Ändern der Größe von Rasterbildern (PNG, GIF, JPEG usw.): einfache Größenänderung und Größenänderung mithilfe eines Größenänderungstyps. Bei der einfachen Größenänderung werden die Bilder durch Angabe der Höhe und Breite in der Größe geändert. Während die zweite Methode verschiedene Techniken zur Größenänderung verwendet. In den folgenden Abschnitten wird gezeigt, wie Sie die Größe eines Bildes mit jeder der oben genannten Methoden ändern.

Einfache Größenänderung eines Bildes

Im Folgenden finden Sie die Schritte zum Ändern der Größe eines Bilds in C#.

  • Laden Sie zuerst die Bilddatei mit der Klasse Image.
  • Ändern Sie dann die Bildgröße, indem Sie die Methode Image.Resize(Int32, Int32) aufrufen.
  • Speichern Sie schließlich das in der Größe geänderte Bild mit der methode Image.Save(string).

Das folgende Codebeispiel zeigt, wie Sie die Größe eines Bilds in .NET Anwendungen ändern.

// Bild laden
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Ändern Sie die Bildgröße und speichern Sie das in der Größe geänderte Bild
    image.Resize(300, 300);
    image.Save("SimpleResizing_out.jpg");
}

Ändern Sie die Bildgröße mithilfe eines Größenänderungstyps

Die Aufzählung ResizeType wird verwendet, um Techniken zur Größenänderung anzugeben, die Sie gemäß Ihren Anforderungen verwenden können. Die vollständige Liste der unterstützten Größenanpassungstypen ist hier verfügbar. Im Folgenden finden Sie die Schritte zum Ändern der Größe eines Bildes mithilfe einer bestimmten Technik zum Ändern der Größe.

Im folgenden Codebeispiel wird die Größe des Bilds mithilfe einer bestimmten Größenänderungstechnik geändert.

// Bild laden
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Ändern Sie die Bildgröße und speichern Sie das in der Größe geänderte Bild
    image.Resize(300, 300, ResizeType.LanczosResample);
    image.Save("SimpleResizing_out.jpg");
}

Bildgröße proportional ändern

Die Größenänderung von Bildern durch Angabe von Höhe und Breite kann zu einem verkleinerten oder skalierten Bild führen. Daher müssen Sie das Seitenverhältnis manuell berechnen. Jede Fehlberechnung des Seitenverhältnisses kann jedoch zu einem gestreckten Bild führen. Um solche Probleme zu vermeiden, können Sie die proportionale Größenänderung verwenden. Im Folgenden sind die Schritte aufgeführt, um dies zu erreichen.

Falls Sie einen bestimmten Größenänderungstyp verwenden möchten, während Sie die Größe von Bildern proportional ändern, verwenden Sie die Überladungsmethoden Image.ResizeWidthProportionally(Int32, ResizeType) und Image.ResizeHeightProportionally(Int32, ResizeType).

Das folgende Codebeispiel zeigt, wie Sie die Größe eines Bilds mithilfe von C# proportional ändern.

// Bild laden
using (Image image = Image.Load("aspose-logo.png"))
{
    // Bilddaten zwischenspeichern
    if (!image.IsCached)
    {
        image.CacheData();
    }
    
    // Geben Sie Breite und Höhe an
    int newWidth = image.Width / 2;
    image.ResizeWidthProportionally(newWidth);
    int newHeight = image.Height / 2;
    image.ResizeHeightProportionally(newHeight);
    
    // Bild speichern
    image.Save("ResizeImageProportionally_out.png");
}

Größe von Vektorgrafiken in C# ändern

Mit Aspose.Imaging for .NET können Sie auch die Größe der Vektorbilder ändern und sie in einem Rasterbildformat speichern. Das folgende Codebeispiel zeigt, wie Sie die Größe eines SVG Bilds ändern und die Ausgabe im PNG Format speichern.

// Bild laden
using (Image image = Image.Load("image.svg"))
 {
    // Größe des Bildes als PNG ändern
    image.Resize(image.Width * 10,image.Height * 15);
    image.Save("Logotype_10_15.png", new PngOptions()
    {
        VectorRasterizationOptions = new SvgRasterizationOptions()
    });
 }

Holen Sie sich eine kostenlose API Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Imaging for .NET ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mithilfe von C# die Größe von Bildern programmgesteuert ändern. Darüber hinaus haben die Codebeispiele gezeigt, wie eine einfache Größenänderung von Bildern oder eine Größenänderung mit einem bestimmten Typ durchgeführt werden kann. Wir haben auch behandelt, wie man die manuelle Berechnung des Seitenverhältnisses beim Ändern der Bildgröße vermeidet. Darüber hinaus wird am Ende auch die Größenänderung von Vektorgrafiken besprochen. Außerdem können Sie mithilfe der Dokumentation mehr über die .NET Bildverarbeitungs-API erfahren. Außerdem können Sie das vollständige Paket der Quellcodebeispiele von GitHub herunterladen. Bei Fragen können Sie uns in unserem Forum kontaktieren.

Siehe auch