Binariser les TIFF via C#
Créez vos propres applications .NET pour binariser les fichiers TIFF à l’aide d’API côté serveur.
Comment binariser les fichiers TIFF à 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 TIFF, 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 TIFF via C#
Vous avez besoin du aspose.imaging.dll pour essayer le workflow suivant dans votre propre environnement.
- Charger les fichiers TIFF 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 TIFF - .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 TIFF via l’application en ligne
Binarisez les documents TIFF en visitant notre site Web de démonstrations en direct . La démo en direct présente les avantages suivants
TIFF Qu'est-ce que TIFF Format de fichier
TIFF ou TIF, Tagged Image File Format, représente des images raster destinées à être utilisées sur une variété d'appareils conformes à cette norme de format de fichier. Il est capable de décrire des données d'image à deux niveaux, en niveaux de gris, en couleurs de palette et en couleurs dans plusieurs espaces colorimétriques. Il prend en charge les schémas de compression avec perte et sans perte pour choisir entre l'espace et le temps pour les applications utilisant le format. Le format est extensible et a subi plusieurs révisions qui permettent l'inclusion d'une quantité illimitée d'informations privées ou à usage spécial. Le format ne dépend pas de la machine et est exempt de limites telles que le processeur, le système d'exploitation ou les systèmes de fichiers.
Lire la suiteAutres formats de binarisation pris en charge
En utilisant C#, on peut facilement binariser différents formats, y compris.