Recortar y cambiar el tamaño de la imagen JPEG usando C#

JPEG o JPG es uno de los formatos de imagen más utilizados para almacenar imágenes y fotos. En ciertos casos, es posible que necesitemos recortar o rotar imágenes por varias razones. En este artículo, aprenderemos cómo recortar y cambiar el tamaño de imágenes JPEG usando C#.

En este artículo se tratarán los siguientes temas:

API de imágenes de C# para recortar y cambiar el tamaño de JPEG

Para recortar y cambiar el tamaño de las imágenes, utilizaremos la API Aspose.Imaging for .NET. Nos permite crear, cargar, manipular, convertir y comprimir imágenes o fotos mediante programación. Descarguela DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Imaging

Recortar imágenes JPEG usando C#

Podemos recortar fácilmente cualquier imagen JPEG/JPG desde todos los lados hacia el centro de la imagen. Para este propósito, la clase RasterImage proporciona el método Crop(Int32, Int32, Int32, Int32) que recorta la imagen con valores de desplazamiento especificados. Toma los valores de desplazamiento a la izquierda, derecha, arriba y abajo como argumentos para recortar los límites de la imagen. Podemos recortar las imágenes utilizando el enfoque de recorte por turno siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue la imagen JPG de entrada usando la clase RasterImage.
  2. A continuación, guarde la imagen en caché utilizando el método CacheData.
  3. Después de eso, llama al método Crop() con los valores de cambio como argumentos.
  4. Finalmente, llame al método Save() con la ruta del archivo de salida como argumento para guardar el archivo de imagen recortado.

El siguiente ejemplo de código muestra cómo recortar una imagen JPEG usando C#.

// Este ejemplo de código demuestra cómo recortar una imagen JPG utilizando el método de recorte por desplazamiento.
// Cargue una imagen existente en una instancia de la clase RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Antes de recortar, la imagen debe almacenarse en caché para un mejor rendimiento
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Definir valores de desplazamiento para los cuatro lados
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;

// Según los valores de cambio, aplique el recorte en la imagen 
// El método de recorte desplazará los límites de la imagen hacia el centro de la imagen
rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

// Guardar la imagen recortada
rasterImage.Save(@"C:\Files\images\cropped_out.jpg");
Recortar imágenes JPEG usando C#

Recorta imágenes JPEG usando C#.

Recortar imágenes a un tamaño específico usando C#

La clase RasterImage también proporciona un método Crop(Rectangle) sobrecargado que recorta un área particular de una imagen a un tamaño específico. Toma una instancia de la clase Rectangle como argumento. Podemos recortar imágenes a un tamaño específico siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue la imagen JPG de entrada mediante la clase RasterImage.
  2. A continuación, almacene en caché la imagen con el método CacheData.
  3. Luego, inicialice el objeto de la clase Rectangle con la ubicación y el tamaño especificados.
  4. Después de eso, llame al método Crop() con el objeto Rectangle creado como argumento.
  5. Finalmente, llame al método Save() con la ruta del archivo de salida como argumento para guardar el archivo de imagen recortado. .

El siguiente ejemplo de código muestra cómo recortar una imagen JPEG a un tamaño específico usando C#.

// Este ejemplo de código demuestra cómo recortar una imagen JPG utilizando el enfoque de recorte por rectángulo.
// Cargue una imagen existente en una instancia de la clase RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Antes de recortar, la imagen debe almacenarse en caché para un mejor rendimiento
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// Cree una instancia de la clase Rectangle con el tamaño deseado
Rectangle rectangle = new Rectangle(35, 35, 580, 240);

// Realice la operación de recorte en el objeto de la clase Rectangle
rasterImage.Crop(rectangle);

// Guardar la imagen recortada
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");
Recorta la imagen en un tamaño específico usando C#.

Recorta la imagen a un tamaño específico usando C#.

Cambiar el tamaño de las imágenes JPEG en C#

La clase Imagen proporciona el método Resize() para cambiar el tamaño de las imágenes. Podemos cambiar el tamaño de las imágenes JPEG siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue la imagen JPG de entrada mediante la clase Imagen.
  2. A continuación, llame al método Resize(int32, int32) con el ancho y el alto requeridos como argumentos.
  3. Finalmente, llame al método Save() con la ruta del archivo de salida como argumento para guardar la imagen redimensionada. .

El siguiente ejemplo de código muestra cómo cambiar el tamaño de una imagen JPEG usando C#.

// Este ejemplo de código demuestra cómo recortar una imagen JPG utilizando el enfoque de recorte por rectángulo.
// Cargar una imagen existente
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");

// Nuevo ancho y alto
image.Resize(300, 100);

// Guardar la imagen redimensionada
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");
Cambiar el tamaño de las imágenes JPEG en C#

Cambiar el tamaño de las imágenes JPEG en C#.

Cambiar el tamaño de las imágenes JPEG proporcionalmente en C#

Es posible que obtengamos imágenes estiradas cuando cambiamos el tamaño con altura y ancho fijos. Podemos usar el cambio de tamaño proporcional para evitar imágenes estiradas. Para ello, la clase Imagen proporciona los métodos ResizeWidthProportionally(Int32) y ResizeHeightProportionally(Int32). Siga los pasos que se indican a continuación para cambiar el tamaño de una imagen proporcionalmente al ancho y al alto.

  1. En primer lugar, cargue la imagen JPG de entrada mediante la clase Imagen.
  2. A continuación, llame al método Image.ResizeWidthProportionally(Int32) con el nuevo ancho como argumentos.
  3. Después de eso, llame al método Image.ResizeHeightProportionally(Int32) con la nueva altura como argumentos.
  4. Finalmente, llame al método Save() con la ruta del archivo de salida como argumento para guardar la imagen redimensionada. .

El siguiente ejemplo de código muestra cómo cambiar el tamaño de una imagen JPEG proporcionalmente usando C#.

// Este ejemplo de código demuestra cómo recortar una imagen JPG utilizando el enfoque de recorte por rectángulo.
// Cargar una imagen existente
Image image = Image.Load(@"C:\Files\images\sample.jpg");

// Ancho
int newAncho = image.Ancho / 2;
image.ResizeAnchoProportionally(newAncho);

// Altura
int newAltura = image.Altura / 2;
image.ResizeAlturaProportionally(newAltura);

// Definir opciones de guardado
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;

// Guarda la imagen
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);

Obtenga una licencia gratis

Pruebe la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, hemos aprendido a:

  • recortar imágenes JPEG en C#;
  • recortar una imagen a un tamaño específico;
  • cambiar el tamaño de las imágenes JPEG mediante programación;
  • cambiar el tamaño de las imágenes JPEG proporcionalmente.

Además, puede obtener más información sobre Aspose.Imaging para la API de .NET utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también