Question

Je sais que c'est possible et beaucoup plus rapide que d'utiliser GDI +. Cependant, je n'ai trouvé aucun bon exemple d'utilisation de DirectX pour redimensionner une image et l'enregistrer sur un disque. J'ai implémenté cela maintes et maintes fois dans GDI +, ce n'est pas difficile. Cependant, GDI + n’utilise aucune accélération matérielle et j’espérais obtenir de meilleures performances en exploitant la carte graphique.

Était-ce utile?

La solution

Avez-vous vraiment besoin d’utiliser DirectX? GDI + fait bien le travail pour redimensionner les images. Dans DirectX, vous n'avez pas vraiment besoin de redimensionner les images, car vous afficherez probablement vos images sous forme de textures. Étant donné que les textures ne peuvent s’appliquer qu’à un objet 3D (triangles / polygones / maillage), la taille de l’objet 3D et du port de vue détermine la taille réelle de l’image affichée. Si vous devez redimensionner votre texture dans l’objet 3D, il suffit de lire les coordonnées ou la matrice de la texture.

Pour manipuler la texture, vous pouvez utiliser la fusion alpha, le masquage et toutes sortes de techniques de manipulation de la texture, si c'est ce que vous recherchez. Pour manipuler un pixel individuel comme le GDI +, je pense toujours que le GDI + est la solution. DirectX n’a jamais eu l’intention de manipuler des images.

Autres conseils

Vous pouvez charger l’image sous forme de texture, l’appliquer sur un quad et tracer celui-ci dans n’importe quelle taille à l’écran. Cela fera la mise à l'échelle. Ensuite, vous pouvez récupérer les données de pixel à l'écran, les stocker dans un fichier ou les traiter ultérieurement.

C'est facile. Les exemples de textures DirectX de base fournis avec le SDK peuvent être ajustés pour ce faire.

Cependant, il est lent. Pas le rendu lui-même, mais le transfert de données de pixels de l'écran vers une mémoire tampon.

À mon avis, il serait beaucoup plus simple et rapide d’écrire un petit code qui redimensionne une image en utilisant la mise à l’échelle bilinéaire d’un tampon à un autre.

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