Binariser les CMX via Java
Créez vos propres applications Java pour binariser les fichiers CMX à l’aide d’API côté serveur.
Comment binariser les fichiers CMX à l'aide de Java
L’invention du film couleur a marqué une étape importante dans le domaine de la photographie. Cependant, la photographie classique est intrinsèquement liée à l’imagerie en noir et blanc. Malgré les capacités techniques étendues des appareils photo pour capturer tout le spectre des couleurs, de nombreuses personnes optent pour le monochrome, transformant leurs images en noir et blanc. Dans de tels cas, une fonction de binarisation entre en jeu, convertissant tous les pixels en valeurs binaires : « 0 » pour le blanc et « 1 » pour le noir. Dans d’autres scénarios, cette conversion n’est pas motivée par des choix artistiques mais pratiques, comme la préparation d’illustrations en noir et blanc à imprimer dans des livres ou des journaux. À l’aide de la bibliothèque graphique Java, vous pouvez désigner un seuil de luminosité des pixels. Les pixels dont les valeurs de luminosité sont inférieures à ce seuil deviendront noirs, tandis que ceux au-dessus deviendront blancs. Vous pouvez également utiliser une méthode de binarisation adaptative qui prend en compte les valeurs des pixels dans la zone environnante. Cette approche permet d’obtenir des transitions plus douces entre les limites de couleurs dans l’image en noir et blanc résultante. Afin de binariser les fichiers CMX, nous utiliserons Aspose.Imaging pour Java API qui est une API de manipulation et de conversion d’images riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme Java. Vous pouvez télécharger sa dernière version directement depuis Maven et installez-le dans votre projet basé sur Maven en ajoutant les configurations suivantes au fichier pom.xml.
Repository
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dépendance
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
Étapes pour binariser les CMX via Java
Vous avez besoin du aspose-imaging-version-jdk16.jar pour essayer le workflow suivant dans votre propre environnement.
- Charger les fichiers CMX avec la méthode Image.Load
- Binariser les images ;
- Enregistrer l’image compressée sur le disque au format pris en charge par Aspose.Imaging
Configuration requise
Aspose.Imaging pour Java est pris en charge sur tous les principaux systèmes d’exploitation. Assurez-vous simplement que vous disposez des prérequis suivants.
- JDK 1.6 ou supérieur est installé.
Binariser les images CMX - Java
import com.aspose.imaging.IMultipageImage; | |
import com.aspose.imaging.Image; | |
import com.aspose.imaging.RasterImage; | |
import com.aspose.imaging.imageoptions.PngOptions; | |
import java.io.File; | |
import java.util.Arrays; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.function.Consumer; | |
binarizeFixed(); | |
public static void binarizeOtsu() | |
{ | |
// https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#binarizeOtsu-- | |
filterImages(RasterImage::binarizeOtsu, "binarizeotsu"); | |
} | |
public static void binarizeBradley() | |
{ | |
filterImages(image -> | |
{ | |
// https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#binarizeBradley-double- | |
image.binarizeBradley(0.5); | |
}, "binarizebradley"); | |
} | |
public static void binarizeFixed() | |
{ | |
filterImages(image -> | |
{ | |
// https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#binarizeFixed-byte- | |
image.binarizeFixed((byte)70); | |
}, "binarizefixed"); | |
} | |
static String templatesFolder = "D:\\"; | |
public static void filterImages(Consumer<RasterImage> doFilter, String filterName) | |
{ | |
List<String> rasterFormats = Arrays.asList("jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico"); | |
List<String> vectorFormats = Arrays.asList("svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr"); | |
List<String> allFormats = new LinkedList<>(rasterFormats); | |
allFormats.addAll(vectorFormats); | |
allFormats.forEach( | |
formatExt -> | |
{ | |
String inputFile = templatesFolder + "template." + formatExt; | |
boolean isVectorFormat = vectorFormats.contains(formatExt); | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = rasterizeVectorImage(formatExt, inputFile); | |
} | |
String outputFile = templatesFolder + String.format("%s_%s.png", filterName, formatExt); | |
System.out.println("Processing " + formatExt); | |
try (RasterImage image = (RasterImage) Image.load(inputFile)) | |
{ | |
doFilter.accept(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image instanceof IMultipageImage && ((IMultipageImage) image).getPageCount() > 1) | |
{ | |
IMultipageImage multiPage = (IMultipageImage) image; | |
final int pageCount = multiPage.getPageCount(); | |
final Image[] pages = multiPage.getPages(); | |
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) | |
{ | |
String fileName = String.format("%s_page%d_%s.png", filterName, pageIndex, formatExt); | |
pages[pageIndex].save(fileName, new PngOptions()); | |
} | |
} | |
else | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
new File(inputFile).delete(); | |
} | |
} | |
); | |
} | |
private static String rasterizeVectorImage(String formatExt, String inputFile) | |
{ | |
String outputFile = templatesFolder + "rasterized."+ formatExt + ".png"; | |
try (Image image = Image.load(inputFile)) | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
À propos de l'API Aspose.Imaging pour Java
Aspose.Imaging API est une solution de traitement d’images pour créer, modifier, dessiner ou convertir des images (photos) au sein d’applications. Il offre : le traitement d’image multiplateforme, y compris, mais sans s’y limiter, les conversions entre différents formats d’image (y compris le traitement d’image multipage ou multicadre uniforme), les modifications telles que le dessin, l’utilisation de primitives graphiques, les transformations (redimensionner, recadrer, retourner et faire pivoter , binarisation, niveaux de gris, ajustement), fonctionnalités avancées de manipulation d’images (filtrage, tramage, masquage, redressement) et stratégies d’optimisation de la mémoire. C’est une bibliothèque autonome et ne dépend d’aucun logiciel pour les opérations d’image. On peut facilement ajouter des fonctionnalités de conversion d’image hautes performances avec des API natives dans les projets. Ce sont des API sur site 100 % privées et les images sont traitées sur vos serveurs.Binariser les CMX via l’application en ligne
Binarisez les documents CMX en visitant notre site Web de démonstrations en direct . La démo en direct présente les avantages suivants
CMX Qu'est-ce que CMX Format de fichier
Les fichiers avec l'extension CMX sont au format de fichier image Corel Exchange utilisé comme présentation par les applications CorelSuite. Il contient des données d'image sous forme de graphiques vectoriels ainsi que des métadonnées qui décrivent l'image. Les fichiers CMX peuvent être ouverts par CorelDraw, Corel Presentations, Paint Shop Pro et certaines versions d'Adobe Illustrator.
Lire la suiteAutres formats de binarisation pris en charge
En utilisant Java, on peut facilement binariser différents formats, y compris.