Recortar imágenes C#

Trabajar con imágenes programáticamente en C# permite a los desarrolladores realizar varias manipulaciones, como redimensionar, rotar y recortar. Entre estas tareas, el recorte es particularmente útil cuando deseas extraer un área específica de una imagen o eliminar márgenes no deseados. En esta guía, nos centraremos en cómo recortar imágenes en C# utilizando Conholdate.Total para .NET.

Te guiaremos a través de dos técnicas de recorte diferentes, una utilizando valores de desplazamiento para recortar la imagen desde todos los lados, y otra definiendo un rectángulo personalizado para aislar una parte específica de la imagen. Cada sección contiene fragmentos de código bien documentados y conocimientos prácticos para aplicaciones del mundo real.

¿Por qué recortar imágenes programáticamente en C#?

Hay varios escenarios en los que recortar imágenes programáticamente es beneficioso:

  • Enfoque en el contenido: El recorte te permite resaltar una parte específica de una imagen, lo que lo hace ideal para fotos de perfil, miniaturas o escaneos de documentos.

  • Procesamiento de imágenes automatizado: En aplicaciones que implican la edición de imágenes a granel o contenido subido por el usuario, automatizar el proceso de recorte agiliza los flujos de trabajo y elimina el esfuerzo manual.

  • Cumplimiento y privacidad: El recorte se puede utilizar para eliminar datos sensibles o irrelevantes antes de compartir imágenes.

El recorte no es solo un ajuste estético, es una parte crucial del procesamiento de datos, el diseño de UX y el rendimiento del sistema.

Recortar imágenes JPG PNG BMP - Configuración de la API .NET

Puedes configurar Conholdate.Total for .NET fácilmente con el comando de instalación de NuGet a continuación:

Install-Package Conholdate.Total

Recortar imágenes desplazando lados en C#

El primer método demuestra cómo recortar una imagen desplazando sus bordes hacia adentro. Esto es particularmente útil cuando deseas recortar márgenes de manera uniforme o asimétrica desde la parte superior, inferior, izquierda y derecha de la imagen.

// Load the image to be cropped.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Define shift values for all four sides.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Based on the shift values, apply the cropping on image. Crop method will shift the image bounds toward the center of image.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

En este ejemplo, cargamos una imagen PNG y especificamos el número de píxeles a eliminar de cada lado. El método Crop ajusta convenientemente las dimensiones de la imagen hacia adentro, eliminando bordes innecesarios mientras se mantiene la integridad de la imagen. Al utilizar este método, puedes lograr un recorte consistente basado en los bordes ideal para documentos escaneados, capturas de pantalla y bordes de imágenes.

Cortar imágenes usando un rectángulo definido en C#

El segundo método ofrece mayor precisión al permitirte definir el área exacta a retener utilizando un límite rectangular. Este enfoque es ideal cuando conoces las coordenadas y el tamaño de la región deseada dentro de la imagen.

// Load the image.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Create an instance of Rectangle class with desired size and crop the image.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);
    rasterImage.Crop(rectangle);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

Este método es especialmente útil cuando necesitas aislar una sección particular de una imagen, como un área de producto en una foto de comercio electrónico, un bloque de texto de un documento escaneado, o una región de interés en un diagrama. Definir y aplicar tal rectángulo es tanto intuitivo como altamente eficiente.

Licencia de Evaluación Gratuita

Puedes obtener una licencia temporal gratuita para evaluar muchas otras características ofrecidas por la API en su máxima capacidad.

Conclusión

Recortar imágenes en C# no tiene por qué ser complicado. Ya sea que necesites recortar bordes o extraer una región específica, puedes realizar el trabajo de manera rápida y precisa. Con soporte para recortes basados en desplazamiento y rectángulo, tienes la flexibilidad para abordar una amplia gama de casos de uso del mundo real, desde la imagen de documentos hasta la personalización de contenido.

Al integrar estas capacidades en sus aplicaciones .NET, puede automatizar tareas de edición de imágenes, mejorar la experiencia del usuario y mantener un formato consistente en grandes conjuntos de datos.

Ver también