C# Conversion de 8-bits ou 16-bits en niveaux de gris de pixels bruts de données

J'ai besoin d'être en mesure de convertir en 8 bits ou 16-bits en niveaux de gris des pixels des données dans un format de fichier que le .NET framework peut prendre en charge.

Les données dont je dispose est la largeur, la hauteur, l'orientation (en bas à gauche) et le format de pixel comme 4096 nuances de gris (résolution 12 bits) emballés dans 2 octets par pixel.

Ainsi, par exemple, chaque pixel varie de 0 à 4096, et chaque pixel est de 2 octets.

J'ai déjà essayé d'utiliser PixelFormat.Format16bppGrayScale à l'image du constructeur, et il jette un GDI+ exception. Tout ce que j'ai lu dit que ce format n'est pas pris en charge et que le réseau est mauvais.

Je veux convertir ce pixel buffer dans un .NET format Bitmap (comme Format32bppArgb) avec aussi peu de la qualité de l'image perte possible.

Ce que quelqu'un sait comment faire?

Pourquoi ne pas simplement créer l'image et de la reproduire, de sorte que vous pouvez l'enregistrer au format PNG? Ne sonne pas comme il sera difficile, à une heure de travail, peut-être.
Reproduire avec quoi? Pouvez-vous développer?
Il suffit de dessiner chaque pixel où il est nécessaire de reproduire l'image.

OriginalL'auteur Trevor Elliott | 2011-07-26