Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: "Découper" une image de forme quelconque de l'écran  (Lu 3039 fois)

0 Membres et 1 Invité sur ce sujet

Quetzakol

  • Newbie
  • *
  • Messages: 40
    • Voir le profil
"Découper" une image de forme quelconque de l'écran
« le: Septembre 02, 2012, 04:15:44 pm »
Bonjour,
Je suis en train de réaliser un jeu vidéo et je voudrais pouvoir "découper" une image à l'écran, mais après avoir réfléchi, je ne trouve toujours pas comment faire.

Le problème est le suivant : au cours du jeu, le joueur aura la possibilité de "découper" une partie de l'écran avec la souris, c'est-à-dire qu'il tracera une forme quelconque, et obtiendra alors une photo de la partie de l'écran comprise à l'intérieur de cette forme. Dans le programme, on récupérera donc une image contenant cette fameuse photo.



J'ai pensé à me servir des sf::Shape pour la forme mais ensuite je ne sais pas comment récupérer les pixels situés précisément dans cette zone...  :-\

Si quelqu'un pouvait m'aider...
Merci d'avance  :)

Quetzakol.
« Modifié: Septembre 02, 2012, 04:25:50 pm par Quetzakol »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : "Découper" une image de forme quelconque de l'écran
« Réponse #1 le: Septembre 02, 2012, 04:25:31 pm »
Sans trop y avoir réflechi, moi je commencerais par capturer l'écran dans une image. Ensuite j'éditerais son canal alpha pour y mettre la forme définie par l'utilisateur ; pour ça je pense qu'il te faut un algorithme de flood fill pour remplir la forme.
Laurent Gomila - SFML developer

Quetzakol

  • Newbie
  • *
  • Messages: 40
    • Voir le profil
Re : "Découper" une image de forme quelconque de l'écran
« Réponse #2 le: Septembre 02, 2012, 06:31:26 pm »
Merci, j'ai réussi en m'inspirant de ces quelques idées, même si ça reste un peu lent (j'ai dû me passer de l'algorithme de flood fill qui ne fonctionnait pas, mais je vais réessayer).

Merci encore :) .