Binariser les JP2 via C#
Créez vos propres applications .NET pour binariser les fichiers JP2 à l’aide d’API côté serveur.
Comment binariser les fichiers JP2 à l'aide de C#
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 C#, 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 JP2, nous utiliserons Aspose.Imaging pour .NET API qui est une API de manipulation et de conversion d’images riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme C #. Ouvrir NuGet gestionnaire de paquets, recherchez Aspose.Imaging et installer. Vous pouvez également utiliser la commande suivante à partir de la console du gestionnaire de packages.
Commande de la console du gestionnaire de packages
PM> Install-Package Aspose.Imaging
Étapes pour binariser les JP2 via C#
Vous avez besoin du aspose.imaging.dll pour essayer le workflow suivant dans votre propre environnement.
- Charger les fichiers JP2 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 .NET est pris en charge sur tous les principaux systèmes d’exploitation. Assurez-vous simplement que vous disposez des prérequis suivants.
- Microsoft Windows ou un système d’exploitation compatible avec .NET Framework, .NET Core, Windows Application, ASP.NET Web Application.
- Environnement de développement comme Microsoft Visual Studio.
- Aspose.Imaging pour .NET référencé dans votre projet.
Binariser les images JP2 - .NET
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Bmp; | |
using Aspose.Imaging.FileFormats.Dicom; | |
using Aspose.Imaging.FileFormats.Emf; | |
using Aspose.Imaging.FileFormats.Jpeg; | |
using Aspose.Imaging.FileFormats.Jpeg2000; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.FileFormats.Psd; | |
using Aspose.Imaging.FileFormats.Tiff.Enums; | |
using Aspose.Imaging.ImageFilters.FilterOptions; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Masking; | |
using Aspose.Imaging.Masking.Options; | |
using Aspose.Imaging.Masking.Result; | |
using Aspose.Imaging.Sources; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads"; | |
BinarizeFixed(); | |
void BinarizeOtsu() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizeotsu | |
image.BinarizeOtsu(); | |
}, "binarizeotsu"); | |
} | |
void BinarizeBradley() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizebradley/index | |
image.BinarizeBradley(0.5); | |
}, "binarizebradley"); | |
} | |
void BinarizeFixed() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizefixed | |
image.BinarizeFixed(70); | |
}, "binarizefixed"); | |
} | |
void FilterImages(Action<RasterImage> doFilter, string filterName) | |
{ | |
List<string> rasterFormats = new List<string>() { "jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico" }; | |
List<string> vectorFormats = new List<string>() { "svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr" }; | |
List<string> allFormats = new List<string>(rasterFormats); | |
allFormats.AddRange(vectorFormats); | |
allFormats.ForEach( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
bool isVectorFormat = vectorFormats.IndexOf(formatExt) > -1; | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = RasterizeVectorImage(formatExt, inputFile); | |
} | |
var outputFile = Path.Combine(templatesFolder, $"{filterName}_{formatExt}.png"); | |
Console.WriteLine($"Processing {formatExt}"); | |
using (var image = (RasterImage)Image.Load(inputFile)) | |
{ | |
doFilter(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
string fileName = $"{filterName}_page{pageIndex}_{formatExt}.png"; | |
multiPage.Pages[pageIndex].Save(templatesFolder + fileName, new PngOptions()); | |
File.Delete(templatesFolder + fileName); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile, new PngOptions()); | |
File.Delete(outputFile); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
File.Delete(inputFile); | |
} | |
} | |
); | |
} | |
string RasterizeVectorImage(string formatExt, string inputFile) | |
{ | |
string outputFile = Path.Combine(templatesFolder, $"rasterized.{formatExt}.png"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
image.Save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
À propos de l'API Aspose.Imaging pour .NET
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 JP2 via l’application en ligne
Binarisez les documents JP2 en visitant notre site Web de démonstrations en direct . La démo en direct présente les avantages suivants
JP2 Qu'est-ce que JP2 Format de fichier
JPEG 2000 (JP2) est un système de codage d'image et une norme de compression d'image de pointe. Conçu en utilisant la technologie des ondelettes JPEG 2000 peut coder du contenu sans perte dans n'importe quelle qualité à la fois. De plus, sans aucune pénalité substantielle dans l'efficacité du codage, JPEG 2000 a la capacité d'accéder et de décoder efficacement le même contenu dans une variété d'autres résolutions et qualités. Les flux de code dans JPEG 2000 sont considérablement évolutifs, ayant des régions d'intérêt qui fournissent la possibilité d'un accès spatial aléatoire. Possédant jusqu'à 16384 composants divers avec des dimensions en térapixels, et une précision pouvant atteindre 38 bits/échantillon.
Lire la suiteAutres formats de binarisation pris en charge
En utilisant C#, on peut facilement binariser différents formats, y compris.