2017-02-03 1 views
0

Ma tâche consiste à dessiner beaucoup de figures géométriques simples comme des rectangles et des cercles pour les grandes images en noir et blanc (environ 4000x6000 pixels) et enregistrer le résultat à la fois, les fichiers bitmap et un tableau binaire représentant chaque pixel comme 1 si dessiné ou 0 sinon. J'utilisais GDI + (= System.Drawing). Comme cela a pris trop de temps, j'ai commencé à regarder Direct2D. J'ai rapidement appris à dessiner dans une fenêtre Win32 et j'ai pensé que je pourrais l'utiliser pour dessiner un bitmap à la place.Direct2D - Tracer des rectangles et des cercles pour les grandes images et les sauvegarder sur le disque

J'ai appris à charger une image et à l'afficher ici: https://msdn.microsoft.com/de-de/library/windows/desktop/ee719658(v=vs.85).aspx Mais je n'ai pas trouvé d'informations sur la façon de créer un grand ID2D1Bitmap et de le rendre. Comment puis-je créer une cible de rendu (doit-elle être un ID2D1HwndRenderTarget?) Associée à un tel gros bitmap nouvellement créé (comment?) Et y tracer des rectangles et des cercles et l'enregistrer dans un fichier, par la suite?

Merci beaucoup pour me montrer la bonne direction, Jürgen

Répondre

0

Si je devais le faire, je roule mon propre code au lieu d'utiliser GDI ou des appels DirectX. La structure d'un bitmap binaire est très simple (tableau de bits compressé), et une fois que vous avez implémenté une fonction pour définir un seul pixel et dessiner une seule ligne (segment de ligne horizontal), dessiner des rectangles et des cercles vient facilement. Si vous ne vous sentez pas à l'aise avec le compactage, vous pouvez travailler avec un tableau d'octets (un pixel par octet) et convertir l'image entière à la fin.

L'écriture de l'image bitmap dans un fichier n'est également pas un gros problème une fois que vous connaissez les opérations d'E/S du fichier binaire (et vous trouverez de nombreuses fonctions prêtes à l'emploi sur le Web).


En fait, lorsque vous connaissez les spécifications de la disposition des données du fichier bitmap, vous n'avez absolument pas besoin de Windows.