Zuschneiden und Ändern der Größe von JPEG-Bildern mit C#

JPEG oder JPG ist eines der am häufigsten verwendeten Bildformate zum Speichern von Bildern und Fotos. In bestimmten Fällen müssen wir Bilder aus verschiedenen Gründen möglicherweise zuschneiden oder drehen. In diesem Artikel erfahren Sie, wie Sie JPEG-Bilder mit C# zuschneiden und ihre Größe ändern.

Folgende Themen sollen in diesem Artikel behandelt werden:

C#-Imaging-API zum Zuschneiden und Ändern der Größe von JPEG

Zum Zuschneiden und Ändern der Größe von Bildern verwenden wir die API Aspose.Imaging for .NET. Es ermöglicht uns, Bilder oder Fotos programmgesteuert zu erstellen, zu laden, zu manipulieren, zu konvertieren und zu komprimieren. Bitte ladenSie entweder die DLL der API herunter oder installieren Sie sie mit NuGet.

PM> Install-Package Aspose.Imaging

Zuschneiden von JPEG-Bildern mit C#

Wir können jedes JPEG/JPG-Bild ganz einfach von allen Seiten zur Mitte des Bildes hin zuschneiden. Zu diesem Zweck stellt die Klasse RasterImage die Methode Crop(Int32, Int32, Int32, Int32) bereit, die das Bild mit angegebenen Verschiebungswerten beschneidet. Es nimmt linke, rechte, obere und untere Verschiebungswerte als Argumente zum Zuschneiden der Bildgrenzen. Wir können die Bilder mit dem Crop-by-Shift-Ansatz zuschneiden, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst das JPG-Eingabebild mit der Klasse RasterImage.
  2. Als nächstes cachen Sie das Bild mit der Methode CacheData.
  3. Rufen Sie danach die Methode Crop() mit den Verschiebungswerten als Argumente auf.
  4. Rufen Sie schließlich die Methode Save() mit dem Ausgabedateipfad als Argument auf, um die zugeschnittene Bilddatei zu speichern.

Das folgende Codebeispiel zeigt, wie Sie ein JPEG-Bild mit C# zuschneiden.

// Dieses Codebeispiel zeigt, wie Sie ein JPG-Bild mit dem Crop-by-Shift-Ansatz zuschneiden.
// Laden Sie ein vorhandenes Bild in eine Instanz der RasterImage-Klasse
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Vor dem Zuschneiden sollte das Bild für eine bessere Leistung zwischengespeichert werden
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Definieren Sie Verschiebungswerte für alle vier Seiten
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;

// Wenden Sie basierend auf den Verschiebungswerten den Zuschnitt auf das Bild an 
// Die Zuschneidemethode verschiebt die Bildgrenzen in Richtung Bildmitte
rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

// Speichern Sie das zugeschnittene Bild
rasterImage.Save(@"C:\Files\images\cropped_out.jpg");
Zuschneiden von JPEG-Bildern mit C#

JPEG-Bilder mit C# zuschneiden.

Bilder mit C# auf eine bestimmte Größe zuschneiden

Die RasterImage-Klasse stellt auch eine überladene Crop(Rectangle)-Methode bereit, die einen bestimmten Bereich eines Bilds auf eine angegebene Größe zuschneidet. Als Argument wird eine Instanz der Klasse Rectangle verwendet. Wir können Bilder auf eine bestimmte Größe zuschneiden, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst das JPG-Eingabebild mit der Klasse RasterImage.
  2. Als nächstes speichern Sie das Bild mit der Methode CacheData.
  3. Initialisieren Sie dann das Rectangle-Klassenobjekt mit der angegebenen Position und Größe.
  4. Rufen Sie danach die Methode Crop() mit dem erstellten Rectangle-Objekt als Argument auf.
  5. Rufen Sie schließlich die Methode Save() mit dem Ausgabedateipfad als Argument auf, um die zugeschnittene Bilddatei zu speichern .

Das folgende Codebeispiel zeigt, wie Sie ein JPEG-Bild mit C# auf eine bestimmte Größe zuschneiden.

// Dieses Codebeispiel zeigt, wie Sie ein JPG-Bild mit dem Crop by Rectangle-Ansatz zuschneiden.
// Laden Sie ein vorhandenes Bild in eine Instanz der RasterImage-Klasse
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Vor dem Zuschneiden sollte das Bild für eine bessere Leistung zwischengespeichert werden
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Erstellen Sie eine Instanz der Rectangle-Klasse mit der gewünschten Größe
Rectangle rectangle = new Rectangle(35, 35, 580, 240);

// Führen Sie den Zuschneidevorgang für ein Objekt der Rectangle-Klasse aus
rasterImage.Crop(rectangle);

// Speichern Sie das zugeschnittene Bild
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");
Bild in bestimmter Größe mit C# zuschneiden.

Bild mit C# auf bestimmte Größe zuschneiden.

Größe von JPEG-Bildern in C# ändern

Die Klasse Image stellt die Resize()-Methode bereit, um die Größe der Bilder zu ändern. Wir können die Größe von JPEG-Bildern ändern, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst das JPG-Eingabebild mit der Klasse Image.
  2. Rufen Sie als Nächstes die Methode Resize(int32, int32) mit der erforderlichen Breite und Höhe als Argumente auf.
  3. Rufen Sie schließlich die Methode Save() mit dem Ausgabedateipfad als Argument auf, um das in der Größe geänderte Bild zu speichern .

Das folgende Codebeispiel zeigt, wie Sie die Größe eines JPEG-Bilds mit C# ändern.

// Dieses Codebeispiel zeigt, wie Sie ein JPG-Bild mit dem Crop by Rectangle-Ansatz zuschneiden.
// Laden Sie ein vorhandenes Bild
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Neue Breite und Höhe
image.Resize(300, 100);

// Speichern Sie das in der Größe geänderte Bild
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");
Größe von JPEG-Bildern in C# ändern

Größe von JPEG-Bildern in C# ändern.

Größe von JPEG-Bildern proportional in C# ändern

Wir erhalten möglicherweise gestreckte Bilder, wenn wir die Größe mit fester Höhe und Breite ändern. Wir können eine proportionale Größenänderung verwenden, um gestreckte Bilder zu vermeiden. Zu diesem Zweck stellt die Klasse Image die Methoden ResizeWidthProportionally(Int32) und ResizeHeightProportionally(Int32) bereit. Bitte befolgen Sie die unten angegebenen Schritte, um die Größe eines Bildes proportional zu Breite und Höhe zu ändern.

  1. Laden Sie zunächst das JPG-Eingabebild mit der Klasse Image.
  2. Rufen Sie als Nächstes die Methode Image.ResizeWidthProportionally(Int32) mit der neuen Breite als Argument auf.
  3. Rufen Sie danach die Methode Image.ResizeHeightProportionally(Int32) mit der neuen Höhe als Argument auf.
  4. Rufen Sie schließlich die Methode Save() mit dem Ausgabedateipfad als Argument auf, um das in der Größe geänderte Bild zu speichern .

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

// Dieses Codebeispiel zeigt, wie Sie ein JPG-Bild mit dem Crop by Rectangle-Ansatz zuschneiden.
// Laden Sie ein vorhandenes Bild
Image image = Image.Load(@"C:\Files\images\sample.jpg");

// Breite
int newBreite = image.Breite / 2;
image.ResizeBreiteProportionally(newBreite);

// Höhe
int newHöhe = image.Höhe / 2;
image.ResizeHöheProportionally(newHöhe);

// Speicheroptionen definieren
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;

// Speichern Sie das Bild
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);

Holen Sie sich eine kostenlose Lizenz

Bitte testen Sie die API ohne Evaluierungseinschränkungen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • JPEG-Bilder in C# zuschneiden;
  • ein Bild auf eine bestimmte Größe zuschneiden;
  • Ändern Sie die Größe von JPEG-Bildern programmgesteuert;
  • Größe von JPEG-Bildern proportional ändern.

Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.Imaging für die .NET-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch