Question

J'ai lu que StretchBlt peut refléter des images horizontalement et / ou verticalement en niant les paramètres nWidthSrc / Dest et nHeightSrc / Dest. Je voudrais cette fonctionnalité sans les frais généraux de performance d'un StretchBlt. J'ai essayé la même technique avec BitBlt mais ça n'a pas marché.

Est-il possible de refléter une image avec quelque chose d'aussi simple que BitBlt, sans surpuissance d'un StretchBlt? Ou ne StretchBlt pas affecter les performances si la source et la taille de destination sont les mêmes?

Était-ce utile?

La solution

BitBlt ne MathMatic effectuer des opérations (ou, XOR, etc.) sur les pixels individuels en question, il ne sera pas redimensionner l'image de quelque façon. C'est exactement ce que StretchBlt est pour, et StretchBlt (par rapport à toute autre opération de redimensionnement de graphiques) est incroyablement rapide que dans la plupart des cas, il peut utiliser la carte graphique pour accélérer ses performances.

Autres conseils

Toutes les fonctions Win32 vont probablement être extrêmement optimisé.

Qu'est-ce que vous fait penser StretchBlt sera un grand succès de la performance?

Avez-vous votre application à l'aide PROFILES StretchBlt?

Vous pouvez inverser toutes les données bitmap vous et voyez si vous pouvez faire mieux que StretchBlt.

Voici un lien qui pourrait vous aider:

http://www.codeguru.com/cpp /gm/bitmap/specialeffects/article.php/c1739

Pour refléter une image que vous avez juste besoin de faire une boucle à travers les pixels dans l'ordre inverse. Tels que si vous voulez mettre en miroir horizontalement il vous suffit de faire ce qui suit:

  1. agrandir l'image toile de doubler la taille
  2. commencer au bas de l'image et vous travaillez à écrire ainsi les pixels dans la zone miroir de haut en bas.
  3. faire l'étape 3 de gauche à droite.

Je ne sais pas quelle langue que vous utilisez, mais la plupart d'entre eux vous permettent de Manipule les pixels ou bits sur une base individuelle en utilisant GDI.

Pas comme vous allez être plus efficace que StretchBlt, à moins que vous connaissez des informations supplémentaires à propos de l'image (par exemple, il y a une frontière de sorte que vous ne devez pas retourner certains pixels.

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