2010-07-19 3 views
1

J'ai une image BMP 24 bits, mais quand je la charge sur mon Pocket PC en utilisant un objet Bitmap et que je fais GetPixel, elle me renvoie des valeurs RVB légèrement erronées. Je suppose qu'il le convertit en 16 bits à la volée. J'obtiens les mêmes résultats en utilisant LockBits et en travaillant directement avec les données bitmap. Est-il possible d'obtenir des valeurs RVB exactes pour un pixel donné du BMP 24 bits dans .NET Compact Framework?Comment obtenir des valeurs RVB exactes pour une image 24 bits dans .NET Compact Framework?

Merci d'avance.

+0

Pourriez-vous dire quelles sont les valeurs et quelle valeur RVB attendiez-vous? – Andres

+0

Par exemple, je m'attends à ce qu'il renvoie 255/255/255 pour la couleur blanche, et il renvoie 248/252/248. Maintenant, je vois clairement qu'il s'agit d'une représentation 16 bits (5/6/5 bits), mais Je n'ai toujours aucune idée de comment obtenir 255/255/255 ... – Constantine

Répondre

0

Humm, intéressant! Je ne suis pas sûr de ce que je vais dire, mais s'il a une couleur de 16 bits, il devrait avoir une palette de couleurs pour représenter la couleur vraie pleine (32 bits). Dans ce cas, la «couleur» que vous obtenez (la valeur de pixel de 16 bits) est l'index de la palette de couleurs. L'objet Bitmap a une propriété Palette, peut-être vaut-il mieux jeter un coup d'œil, faire des tests et voir si ce que je dis est logique!

Cordialement

Bitmap class

Palette property

+0

L'image est de couleur 24 bits, mais il semble être converti automatiquement en couleur 16 bits lorsqu'il est chargé dans l'objet Bitmap. Bien que le format de pixel de ce bitmap soit de couleur 24 bits, il renvoie des valeurs RVB tronquées lorsque GetPixel est appelé. – Constantine

0

Mon pari est que cependant que vous avez chargé le Bitmap a obtenu traduire un DDB et le pilote est configuré pour utiliser la couleur 24 bits et est ce que tu finis avec. Si vous souhaitez conserver la couleur 32 bits, vous devez utiliser une DIB. Pour le cadre compact, cela signifie le chargement de l'image avec le constructeur de flux (see this blog entry for more on DDB/DIB in the CF).

Questions connexes