1. Produtos
  2.   Imagem
  3.   Java
  4.   ICAFE
 
  

Biblioteca gratuita de criação e processamento de imagens Java

Uma API de processamento de imagens Java de código aberto útil que permite criar, ler, escrever, redimensionar, cortar, adicionar marcas d'água e converter imagens como PNG, JPEG, BMP, TIFF, ICO e muito mais.

No mundo da visão computacional, as bibliotecas desempenham um papel vital na simplificação do processo de análise de imagens e vídeos. Uma dessas bibliotecas que ganhou atenção significativa nos últimos anos é a ICAFE, uma biblioteca de código aberto desenvolvida pela Dragon66. A ICAFE suporta formatos de imagem populares como JPEG, PNG, BMP, TIFF, GIF e até mesmo formatos RAW de câmeras digitais. É uma biblioteca Java poderosa e versátil para processamento de imagens que oferece funcionalidade rica e vários recursos básicos e avançados para trabalhar com imagens, como criar novas imagens, conversão de imagens entre vários formatos, trabalhar com metadados de imagens, criar GIF animado, mesclar ou dividir imagens, remover ou adicionar pedaços ao PNG, compactar imagens ou converter entre formatos, aplicar filtros a imagens e assim por diante.

ICAFE (Image & Camera Acquisition for Everyone) é uma biblioteca Java de código aberto que simplifica o trabalho com imagens, oferecendo vários recursos para processamento, codificação, decodificação e extração de metadados dentro de aplicativos Java. Originalmente projetada para manipulação de imagens, a ICAFE evoluiu para suportar uma ampla gama de formatos, incluindo a capacidade de processar diagramas. Com sua API flexível e suporte para múltiplos formatos de imagem, o ICAFE fornece aos desenvolvedores de software as ferramentas que eles precisam para criar aplicativos poderosos, especialmente para trabalhar com diagramas. Além disso, os desenvolvedores de software podem usar a biblioteca para importar diagramas de diferentes formatos, manipulá-los e então exportá-los para o formato desejado. Com sua facilidade de uso, conjunto robusto de recursos, suporte multiformato e flexibilidade, o ICAFE é um recurso excelente e valioso no kit de ferramentas de qualquer desenvolvedor.

Previous Next

Introdução ao ICAFE

A maneira mais fácil e recomendada de instalar o ICAFE é via GitHub.

Instalar o ICAFE via GitHub

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

Compressão e conversão de imagens

A biblioteca ICAFE de código aberto simplifica a leitura e a compressão de vários tipos de imagens, o que é crucial ao trabalhar com arquivos grandes ou otimizar aplicativos da web. A biblioteca permite compressão de imagens com e sem perdas. Aqui está um exemplo que mostra como os desenvolvedores de software podem usar o código para compactar uma imagem JPEG de entrada e salvá-la com qualidade de 75%. A classe JPEGEncoder do ICAFE simplifica a compressão de imagens, que pode ser ajustada para atender às necessidades do aplicativo.

Como compactar uma imagem JPEG em aplicativos 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!");
    }
}

Extração de metadados via aplicativos Java

A biblioteca ICAFE suporta a extração e manipulação de metadados de imagem, como EXIF, IPTC e XMP. Isso é particularmente útil ao lidar com imagens de câmera ou diagramas que exigem informações adicionais, como carimbos de data/hora, dados de localização ou detalhes de direitos autorais. No exemplo de código a seguir, o ICAFE lê os metadados EXIF ​​de um arquivo JPEG, recuperando detalhes sobre o modelo da câmera e a data em que a foto foi tirada. Isso pode ser expandido para lidar com várias outras tags de metadados, tornando-se uma excelente ferramenta para gerenciar coleções de imagens.

Como carregar, ler e extrair os metadados EXIF ​​de um arquivo JPEG via API 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 (redimensionar, cortar, filtrar) imagens via Java

A biblioteca ICAFE de código aberto facilita para desenvolvedores de software ler e manipular vários tipos de imagens dentro de aplicativos Java. A biblioteca suporta totalmente a manipulação fácil de imagens, incluindo redimensionamento, corte, aplicação de filtros e muito mais. No seguinte trecho de código, os desenvolvedores de software podem redimensionar uma imagem, mantendo sua proporção. Os recursos de manipulação do ICAFE permitem que os desenvolvedores de software integrem facilmente funções de processamento de imagem em seus softwares.

Como carregar e redimensionar imagens via API 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!");
    }
} 

Aplicar marca d'água em imagens via API Java?

Adicionar marcas d'água em imagens é simples com a biblioteca ICAFE. Esse recurso é útil para proteger propriedade intelectual, especialmente em aplicativos que lidam com diagramas ou ativos de design. O exemplo de código a seguir demonstra como sobrepor uma marca d'água de texto em uma imagem, garantindo que seus diagramas ou imagens sejam protegidos.

Como sobrepor uma marca d'água de texto em uma imagem via API 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!");
    }
}
 Português