Ritaglia e ridimensiona l'immagine JPEG usando C#

JPEG o JPG è uno dei formati di immagine più comunemente usati per archiviare immagini e foto. In alcuni casi, potrebbe essere necessario ritagliare o ruotare le immagini per vari motivi. In questo articolo impareremo come ritagliare e ridimensionare le immagini JPEG usando C#.

In questo articolo verranno trattati i seguenti argomenti:

API C# Imaging per ritagliare e ridimensionare JPEG

Per ritagliare e ridimensionare le immagini, utilizzeremo l’API Aspose.Imaging for .NET. Ci consente di creare, caricare, manipolare, convertire e comprimere immagini o foto in modo programmatico. Si prega di scaricarela DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Imaging

Ritaglia le immagini JPEG usando C#

Possiamo facilmente ritagliare qualsiasi immagine JPEG/JPG da tutti i lati verso il centro dell’immagine. A tale scopo, la classe RasterImage fornisce il metodo Crop(Int32, Int32, Int32, Int32) che ritaglia l’immagine con valori di spostamento specificati. Prende i valori di spostamento a sinistra, a destra, in alto e in basso come argomenti per ritagliare i contorni dell’immagine. Possiamo ritagliare le immagini utilizzando l’approccio ritaglio per spostamento seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica l’immagine JPG di input utilizzando la classe RasterImage.
  2. Quindi, memorizza nella cache l’immagine utilizzando il metodo CacheData.
  3. Dopodiché, chiama il metodo Crop() con i valori shift come argomenti.
  4. Infine, chiama il metodo Save() con il percorso del file di output come argomento per salvare il file di immagine ritagliato.

L’esempio di codice seguente mostra come ritagliare un’immagine JPEG usando C#.

// Questo esempio di codice mostra come ritagliare un'immagine JPG usando l'approccio ritaglio per turno.
// Carica un'immagine esistente in un'istanza della classe RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Prima del ritaglio, l'immagine dovrebbe essere memorizzata nella cache per prestazioni migliori
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Definire i valori di spostamento per tutti e quattro i lati
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;

// In base ai valori di spostamento, applica il ritaglio sull'immagine 
// Il metodo di ritaglio sposterà i bordi dell'immagine verso il centro dell'immagine
rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

// Salva l'immagine ritagliata
rasterImage.Save(@"C:\Files\images\cropped_out.jpg");
Ritaglia le immagini JPEG usando C#

Ritaglia le immagini JPEG usando C#.

Ritaglia le immagini a dimensioni specifiche usando C#

La classe RasterImage fornisce anche un metodo Crop(Rectangle) sovraccarico che ritaglia un’area particolare di un’immagine a una dimensione specificata. Prende un’istanza della classe Rectangle come argomento. Possiamo ritagliare le immagini a una dimensione specificata seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica l’immagine JPG di input utilizzando la classe RasterImage.
  2. Quindi, memorizza nella cache l’immagine utilizzando il metodo CacheData.
  3. Quindi, inizializza l’oggetto della classe Rectangle con la posizione e le dimensioni specificate.
  4. Successivamente, chiama il metodo Crop() con l’oggetto Rectangle creato come argomento.
  5. Infine, chiama il metodo Save() con il percorso del file di output come argomento per salvare il file di immagine ritagliato .

L’esempio di codice seguente mostra come ritagliare un’immagine JPEG a una dimensione specifica usando C#.

// Questo esempio di codice mostra come ritagliare un'immagine JPG usando l'approccio crop by Rectangle.
// Carica un'immagine esistente in un'istanza della classe RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Prima del ritaglio, l'immagine dovrebbe essere memorizzata nella cache per prestazioni migliori
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Crea un'istanza della classe Rectangle con la dimensione desiderata
Rectangle rectangle = new Rectangle(35, 35, 580, 240);

// Eseguire l'operazione di ritaglio sull'oggetto della classe Rectangle
rasterImage.Crop(rectangle);

// Salva l'immagine ritagliata
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");
Ritaglia l'immagine in dimensioni specifiche usando C#.

Ritaglia l’immagine a dimensioni specifiche usando C#.

Ridimensiona le immagini JPEG in C#

La classe Image fornisce il metodo Resize() per ridimensionare le immagini. Possiamo ridimensionare le immagini JPEG seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica l’immagine JPG di input utilizzando la classe Image.
  2. Quindi, chiama il metodo Resize(int32, int32) con la larghezza e l’altezza richieste come argomenti.
  3. Infine, chiama il metodo Save() con il percorso del file di output come argomento per salvare l’immagine ridimensionata .

L’esempio di codice seguente mostra come ridimensionare un’immagine JPEG usando C#.

// Questo esempio di codice mostra come ritagliare un'immagine JPG usando l'approccio Ritaglia per Rectangle.
// Carica un'immagine esistente
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Nuova larghezza e altezza
image.Resize(300, 100);

// Salva l'immagine ridimensionata
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");
Ridimensiona le immagini JPEG in C#

Ridimensiona le immagini JPEG in C#.

Ridimensiona le immagini JPEG in modo proporzionale in C#

Potremmo ottenere immagini allungate quando ridimensioniamo con altezza e larghezza fisse. Possiamo usare il ridimensionamento proporzionale per evitare immagini allungate. A tale scopo, la classe Image fornisce i metodi ResizeWidthProportionally(Int32) e ResizeHeightProportionally(Int32). Segui i passaggi indicati di seguito per ridimensionare un’immagine proporzionalmente alla larghezza e all’altezza.

  1. Innanzitutto, carica l’immagine JPG di input utilizzando la classe Image.
  2. Quindi, chiama il metodo Image.ResizeWidthProportionally(Int32) con una nuova larghezza come argomenti.
  3. Successivamente, chiama il metodo Image.ResizeHeightProportionally(Int32) con una nuova altezza come argomenti.
  4. Infine, chiama il metodo Save() con il percorso del file di output come argomento per salvare l’immagine ridimensionata .

L’esempio di codice seguente mostra come ridimensionare un’immagine JPEG in modo proporzionale usando C#.

// Questo esempio di codice mostra come ritagliare un'immagine JPG usando l'approccio Ritaglia per Rectangle.
// Carica un'immagine esistente
Image image = Image.Load(@"C:\Files\images\sample.jpg");

// Larghezza
int newLarghezza = image.Larghezza / 2;
image.ResizeLarghezzaProportionally(newLarghezza);

// Altezza
int newAltezza = image.Altezza / 2;
image.ResizeAltezzaProportionally(newAltezza);

// Definisci le opzioni di salvataggio
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;

// Salva l'immagine
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);

Ottieni una licenza gratuita

Prova l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo abbiamo imparato a:

  • ritaglia le immagini JPEG in C#;
  • ritaglia un’immagine a una dimensione specifica;
  • ridimensionare le immagini JPEG in modo programmatico;
  • ridimensionare le immagini JPEG in modo proporzionale.

Inoltre, puoi saperne di più su Aspose.Imaging per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche