Question

Je travaille sur une application qui imprime un dossier de fichiers image, notamment JPEG et TIFF.Les images TIFF sont généralement en noir et blanc (1bpp).

Après avoir chargé l'image, je souhaite déterminer si l'image est Couleur ou N&B ou Niveaux de gris afin que je puisse envoyer l'image à la bonne imprimante (imprimante couleur ou imprimante noir et blanc).

j'utilise le Bitmap constructeur image = new Bitmap(filename); pour charger l'image.

MODIFIER: La réponse pour vérifier la profondeur des pixels est idéale pour le noir et blanc.Avez-vous des idées pour vérifier si l'image est en niveaux de gris sans parcourir chaque pixel ?

Était-ce utile?

La solution

La bonne façon de vérifier cela est la suivante :

Pour les fichiers JPEG, vous devez vérifier les propriétés appropriées à l'aide du Éléments de propriété collection du Bitmap.Celui-ci peut contenir le EXIF balises pour aider à déterminer la profondeur de bits.La prochaine étape serait d'analyser le En-tête JPEG et recherchez le marqueur « début de l'image », puis le nombre de composants dans l'image.

La méthode finale consiste à charger le JPEG dans un objet Bitmap et à comparer le nombre de pixels avec le forum (largeur * hauteur * bytes_per_pixel).Donc, si vous chargez le bitmap et que le nombre d'octets de données brutes réelles est égal à (largeur * hauteur), alors vous savez qu'il y a fort à parier que l'image a 1 octet par pixel et qu'elle est donc en niveaux de gris.

La dernière chose que vous voudrez vérifier est le PixelFormat du bitmap lui-même.

Pour le TIFF format de fichier, vous devez faire la même chose en utilisant la collection PropertyItems et vérifier la balise appropriée mentionnée dans la spécification.Si ceux-ci échouent, effectuez la comparaison des octets de l'image et utilisez enfin la propriété PixelFormat en dernier recours.

Autres conseils

Juste vérifier cette propriété

image.PixelFormat

Il correspondra à l'une des valeurs System.Drawing.Imaging.PixelFormat

Bien que vous voulez envoyer plus que du noir et blanc à l'imprimante B & W, vous devez envoyer des échelles de gris là aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top