1. Des produits
  2.   Image
  3.   Java
  4.   ICAFE
 
  

Bibliothèque gratuite de création et de traitement d'images Java

Une API de traitement d'images Java Open Source utile qui permet de créer, lire, écrire, redimensionner, recadrer, ajouter des filigranes et convertir des images telles que PNG, JPEG, BMP, TIFF, ICO et bien d'autres.

Dans le monde de la vision par ordinateur, les bibliothèques jouent un rôle essentiel dans la simplification du processus d'analyse d'images et de vidéos. ICAFE, une bibliothèque open source développée par Dragon66, a fait l'objet d'une attention particulière ces dernières années. ICAFE prend en charge les formats d'image courants tels que JPEG, PNG, BMP, TIFF, GIF et même les formats RAW des appareils photo numériques. Il s'agit d'une bibliothèque Java puissante et polyvalente pour le traitement d'images qui offre de riches fonctionnalités et diverses fonctions de base et avancées pour travailler avec des images, telles que la création de nouvelles images, la conversion d'images entre différents formats, le travail avec les métadonnées d'images, la création de GIF animés, la fusion ou la division d'images, la suppression ou l'ajout de morceaux au format PNG, la compression d'images ou la conversion entre formats, l'application de filtres aux images, etc.

ICAFE (Image & Camera Acquisition for Everyone) est une bibliothèque Java open source qui simplifie le travail avec les images, offrant diverses fonctionnalités de traitement, d'encodage, de décodage et d'extraction de métadonnées dans les applications Java. Conçue à l'origine pour la gestion d'images, ICAFE a évolué pour prendre en charge une large gamme de formats, y compris la capacité de traiter des diagrammes. Avec son API flexible et sa prise en charge de plusieurs formats d'image, ICAFE fournit aux développeurs de logiciels les outils dont ils ont besoin pour créer des applications puissantes, en particulier pour travailler avec des diagrammes. De plus, les développeurs de logiciels peuvent utiliser la bibliothèque pour importer des diagrammes de différents formats, les manipuler, puis les exporter dans le format souhaité. Avec sa facilité d'utilisation, son ensemble robuste de fonctionnalités, sa prise en charge multiformat et sa flexibilité, ICAFE est une ressource excellente et précieuse dans la boîte à outils de tout développeur.

Previous Next

Démarrage avec ICAFE

Le moyen le plus simple et recommandé d'installer ICAFE est via GitHub.

Installer ICAFE via GitHub

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

Compression et conversion d'images

La bibliothèque open source ICAFE simplifie la lecture et la compression de différents types d'images, ce qui est essentiel lorsque l'on travaille avec des fichiers volumineux ou que l'on optimise des applications Web. La bibliothèque permet la compression d'images avec ou sans perte. Voici un exemple qui montre comment les développeurs de logiciels peuvent utiliser le code pour compresser une image JPEG d'entrée et l'enregistrer avec une qualité de 75 %. La classe JPEGEncoder d'ICAFE simplifie la compression d'images, qui peut être ajustée pour répondre aux besoins de l'application.

Comment compresser une image JPEG dans des applications 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!");
    }
}

Extraction de métadonnées via des applications Java

La bibliothèque ICAFE prend en charge l'extraction et la manipulation de métadonnées d'image telles que EXIF, IPTC et XMP. Cela est particulièrement utile lorsqu'il s'agit d'images ou de diagrammes d'appareil photo qui nécessitent des informations supplémentaires telles que des horodatages, des données de localisation ou des informations sur les droits d'auteur. Dans l'exemple de code suivant, ICAFE lit les métadonnées EXIF ​​à partir d'un fichier JPEG, récupérant des détails sur le modèle d'appareil photo et la date à laquelle la photo a été prise. Cela peut être étendu pour gérer diverses autres balises de métadonnées, ce qui en fait un excellent outil de gestion des collections d'images.

Comment charger, lire et extraire les métadonnées EXIF ​​d'un fichier JPEG via l'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!");
        }
    }
}
 

Manipuler (redimensionner, recadrer, filtrer) des images via Java

La bibliothèque open source ICAFE permet aux développeurs de logiciels de lire et de manipuler facilement différents types d'images dans les applications Java. La bibliothèque prend entièrement en charge la manipulation facile des images, y compris le redimensionnement, le recadrage, l'application de filtres, etc. Dans l'extrait de code suivant, les développeurs de logiciels peuvent redimensionner une image tout en conservant son rapport hauteur/largeur. Les capacités de manipulation d'ICAFE permettent aux développeurs de logiciels d'intégrer facilement des fonctions de traitement d'image dans leurs logiciels.

Comment charger et redimensionner des images via l'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!");
    }
} 

Appliquer un filigrane aux images via l'API Java ?

Ajouter des filigranes aux images est simple avec la bibliothèque ICAFE. Cette fonctionnalité est utile pour protéger la propriété intellectuelle, en particulier dans les applications qui traitent de diagrammes ou de ressources de conception. L'exemple de code suivant montre comment superposer un filigrane de texte sur une image, garantissant ainsi la protection de vos diagrammes ou images.

Comment superposer un filigrane de texte sur une image via l'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!");
    }
}
 Français