2009-06-10 8 views
0

J'utilise une bibliothèque qui a été portée sous Windows à partir de Linux. La bibliothèque est utilisée pour lire une base de données de terrain et jusqu'à présent, elle a été utilisée pour de simples requêtes; élévation, ligne de vue, etc. Mais il a aussi la possibilité de créer des bitmaps du fichier de terrain sous-jacent dont j'aimerais profiter ... La fonction que j'utilise dit qu'il crée un "XY-Bitmap qui peut ensuite être passé à XPutImage ". J'ai déjà affiché des images dans une application MFC mais je n'arrive pas à obtenir cette image bitmap spécifique. Est-il possible d'afficher un tel bitmap dans une application WIN32? Ou possible un port WIN32 de la fonction XPutImage? Je serais même prêt à utiliser Python s'il a un peu de support pour ce type d'image.Bitmap XY dans une application MFC

Répondre

1

Un bitmap XY a une profondeur de bit de 1 bit. Ce que vous pouvez essayer est d'utiliser CreateBitmap() avec une profondeur de bit de 1 pixel, utilisez GetDIBits() pour obtenir un pointeur vers les données de pixels brutes et copiez le bitmap XY sur les données de pixel avec memcpy(). Je ne suis pas sûr que l'ordre row/col soit le même. Si cela ne fonctionne pas, il est facile d'écrire une fonction qui va scanner le bitmap XY et copier les valeurs dans un bitmap que vous avez créé avec CreateBitmap() - que ce soit avec une profondeur de 1 bit ou une profondeur plus élevée, selon le reste des bitmaps que vous travaillez avec je présume. La méthode serait la même - utilisez GetDIBits() pour accéder aux données bitmap brutes, sélectionnez la bitmap dans un DC lorsque vous avez terminé la copie, utilisez BitBlt(), StretchBlt() ou AlphaBlend() pour afficher le bitmap sur votre peindre DC.

Questions connexes