IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

[Java2D]Fonction de remplissage


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut [Java2D]Fonction de remplissage
    Bonjour,

    je cherche un moyen de reproduire avec Java2D la fonction "pot de peinture" de mspaint (remplissage d'une zone définie par tous les pixels de la même couleur que le pixel sélectionné) mais je seche un peu sur l'algo de traitement. des pistes ?

  2. #2
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    On me contredira si je t'aiguille sur une fausse piste, mais:

    A partir de n'importe quel composant on doit pouvoir récupérer une image.
    Ensuite de cette image, on doit pouvoir récupérer les pixels qui l'a composent.
    Ensuite ne reste plus que se déplacer pour chaque pixel de ligne en ligne jusqu'a la fin est detecté à partir du clic de souris les zones en contactes.

    Je pense par exemple en utilisant les classes Shape et la méthode contains qui te permets de savoir si le clic contient la zone rouge par exemple.

  3. #3
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Sinon tu peux reprendre le principe du démineur quand tu découvres une case vide. Tu fais une fonction récursive qui vérifie les 8 pixels autour de ton pixel de départ. Par contre il faut conserver les pixels qui ont déjà été explorés.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Voui ca s'appelle un algorithme d'innondation (transfert des valeurs/test sur les plus proches 4 ou 8 voisins - celon ce qu'on veut faire) ; c'est un grand classique de la manipulation d'image bitmap...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    vous auriez pas un petit exemple par harsard... si ca existe deja, autant pas réinventer la roue.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Un peu de recherche ne fait pas de mal .

    http://en.wikipedia.org/wiki/Flood_fill

    Les images montrent les differences de comportement entre un test sur les 4 voisins et un sur les 8 voisins.
    Outre les algorithmes en pseudo-language, il y a des liens vers des implementations en bas de page.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/07/2013, 14h43
  2. Fonction de remplissage de contrôles
    Par Masamunai dans le forum VB.NET
    Réponses: 17
    Dernier message: 01/12/2010, 15h47
  3. Réponses: 1
    Dernier message: 01/08/2010, 14h58
  4. je cherche fonction de remplissage (pot de peinture)
    Par Faudel24000 dans le forum 2D
    Réponses: 12
    Dernier message: 11/08/2009, 00h07
  5. [AC-2007] Remplissage d'un contrôle en fonction du remplissage d'un autre
    Par Razorback dans le forum IHM
    Réponses: 7
    Dernier message: 19/05/2009, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo