1. Productos
  2.   Imagen
  3.   Java
  4.   ICAFE
 
  

Biblioteca gratuita de creación y procesamiento de imágenes Java

Una API de procesamiento de imágenes Java de código abierto útil que permite crear, leer, escribir, redimensionar, recortar, agregar marcas de agua y convertir imágenes como PNG, JPEG, BMP, TIFF, ICO y muchas más.

En el mundo de la visión artificial, las bibliotecas desempeñan un papel fundamental a la hora de simplificar el proceso de análisis de imágenes y vídeos. Una de estas bibliotecas que ha ganado mucha atención en los últimos años es ICAFE, una biblioteca de código abierto desarrollada por Dragon66. ICAFE admite formatos de imagen populares como JPEG, PNG, BMP, TIFF, GIF e incluso formatos RAW de cámaras digitales. Es una biblioteca Java potente y versátil para el procesamiento de imágenes que ofrece una gran funcionalidad y varias funciones básicas y avanzadas para trabajar con imágenes, como crear nuevas imágenes, convertir imágenes entre varios formatos, trabajar con metadatos de imágenes, crear GIF animados, fusionar o dividir imágenes, eliminar o añadir fragmentos a PNG, comprimir imágenes o convertir entre formatos, aplicar filtros a imágenes, etc.

ICAFE (Image & Camera Acquisition for Everyone) es una biblioteca Java de código abierto que simplifica el trabajo con imágenes, ofreciendo varias funciones para el procesamiento, la codificación, la descodificación y la extracción de metadatos dentro de las aplicaciones Java. ICAFE, que en un principio se diseñó para el manejo de imágenes, ha evolucionado para admitir una amplia gama de formatos, incluida la capacidad de procesar diagramas. Con su API flexible y compatibilidad con múltiples formatos de imágenes, ICAFE proporciona a los desarrolladores de software las herramientas que necesitan para crear aplicaciones potentes, especialmente para trabajar con diagramas. Además, los desarrolladores de software pueden utilizar la biblioteca para importar diagramas de diferentes formatos, manipularlos y luego exportarlos al formato deseado. Con su facilidad de uso, su sólido conjunto de funciones, su compatibilidad con múltiples formatos y su flexibilidad, ICAFE es un recurso excelente y valioso en el conjunto de herramientas de cualquier desarrollador.

Previous Next

Introducción a ICAFE

La forma más sencilla y recomendada de instalar ICAFE es a través de GitHub.

Instalar ICAFE a través de GitHub

go get -u https://github.com/dragon66/icafe.git 

Compresión y conversión de imágenes

La biblioteca de código abierto ICAFE simplifica la lectura y compresión de varios tipos de imágenes, lo que resulta crucial cuando se trabaja con archivos grandes o se optimizan aplicaciones web. La biblioteca permite la compresión de imágenes con y sin pérdida. A continuación, se muestra un ejemplo que muestra cómo los desarrolladores de software pueden utilizar el código para comprimir una imagen JPEG de entrada y guardarla con una calidad del 75 %. La clase JPEGEncoder de ICAFE simplifica la compresión de imágenes, que se puede ajustar para satisfacer las necesidades de la aplicación.

¿Cómo comprimir una imagen JPEG dentro de aplicaciones Node.js?


import com.icafe4j.image.jpeg.JPEGEncoder;

import java.io.File;
import java.io.IOException;

public class ImageCompressionExample {
    public static void main(String[] args) throws IOException {
        File inputFile = new File("input.jpg");
        File outputFile = new File("compressed_output.jpg");
        
        // Compress JPEG with 75% quality
        JPEGEncoder.encode(inputFile, outputFile, 0.75f);
        
        System.out.println("Image compressed successfully!");
    }
}

Extracción de metadatos mediante aplicaciones Java

La biblioteca ICAFE permite extraer y manipular metadatos de imágenes como EXIF, IPTC y XMP. Esto resulta especialmente útil cuando se trabaja con imágenes de cámaras o diagramas que requieren información adicional como marcas de tiempo, datos de ubicación o detalles de derechos de autor. En el siguiente ejemplo de código, ICAFE lee los metadatos EXIF ​​de un archivo JPEG y recupera detalles sobre el modelo de cámara y la fecha en que se tomó la foto. Esto se puede ampliar para manejar otras etiquetas de metadatos, lo que la convierte en una excelente herramienta para administrar colecciones de imágenes.

¿Cómo cargar, leer y extraer los metadatos EXIF ​​de un archivo JPEG a través de la API de Java?


import com.icafe4j.image.metadata.Metadata;
import com.icafe4j.image.metadata.exif.Exif;
import com.icafe4j.image.jpeg.JPEGMetadataReader;

import java.io.File;
import java.io.IOException;

public class MetadataExample {
    public static void main(String[] args) throws IOException {
        File imageFile = new File("input.jpg");

        // Extract EXIF metadata from a JPEG file
        Metadata metadata = JPEGMetadataReader.readMetadata(imageFile);
        Exif exif = (Exif) metadata.getExif();

        if (exif != null) {
            System.out.println("Camera Model: " + exif.getCameraModel());
            System.out.println("Date Taken: " + exif.getDateTime());
        } else {
            System.out.println("No EXIF metadata found!");
        }
    }
}
 

Manipular (cambiar de tamaño, recortar, aplicar filtros) imágenes mediante Java

La biblioteca de código abierto ICAFE facilita a los desarrolladores de software la lectura y manipulación de varios tipos de imágenes dentro de las aplicaciones Java. La biblioteca admite totalmente la manipulación sencilla de imágenes, incluido el cambio de tamaño, el recorte, la aplicación de filtros y más. En el siguiente fragmento de código, los desarrolladores de software pueden cambiar el tamaño de una imagen manteniendo su relación de aspecto. Las capacidades de manipulación de ICAFE permiten a los desarrolladores de software integrar fácilmente funciones de procesamiento de imágenes en su software.

¿Cómo cargar y redimensionar imágenes a través de la API de Java?


public class ResizeImageExample {
    public static void main(String[] args) throws IOException {
        BufferedImage originalImage = ImageIO.read(new File("input.jpg"));
        
        // Resize the image to a width of 300 and maintain aspect ratio
        Image resizedImage = originalImage.getScaledInstance(300, -1, Image.SCALE_SMOOTH);
        BufferedImage resizedBufferedImage = new BufferedImage(300, resizedImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
        
        Graphics2D g2d = resizedBufferedImage.createGraphics();
        g2d.drawImage(resizedImage, 0, 0, null);
        g2d.dispose();
        
        // Save the resized image
        ImageIO.write(resizedBufferedImage, "jpg", new File("resized_output.jpg"));
        
        System.out.println("Image resized successfully!");
    }
} 

¿Cómo aplicar marcas de agua a las imágenes mediante la API de Java?

Agregar marcas de agua a las imágenes es sencillo con la biblioteca ICAFE. Esta función es útil para proteger la propiedad intelectual, especialmente en aplicaciones que trabajan con diagramas o recursos de diseño. El siguiente ejemplo de código demuestra cómo superponer una marca de agua de texto en una imagen, lo que garantiza que sus diagramas o imágenes estén protegidos.

¿Cómo superponer una marca de agua de texto en una imagen a través de la API de Java?


public class WatermarkExample {
    public static void main(String[] args) throws IOException {
        BufferedImage image = ImageIO.read(new File("input.jpg"));
        
        // Add a text watermark
        TextWatermark watermark = new TextWatermark("Watermark", 50);
        BufferedImage watermarkedImage = watermark.apply(image);
        
        // Save the watermarked image
        ImageIO.write(watermarkedImage, "jpg", new File("watermarked_output.jpg"));
        
        System.out.println("Watermark applied successfully!");
    }
}
 Español