voila , avant de ré attaquer mon bois
j'ai refait le code page 1 de ce topic
maintenant une image type
sera bien découpé du premier coup
le probleme ne venait de mon algo , mais du fait qu'en Purebasic on ne peux pas effacer
une couleur avec un pixel transparent !!
d'ailleurs une fonction qui ferai ça, manque !
j'ai du ruser en suprimant a chaque fois l'image transparente sur lequel je dessinais
pour la recreer , c'etait la seule solution pour effacer les résidus d'anciennes image
et finalement simuler l'effacement par ré-ecriture de pixel Transparent
en recreeant une image, on refait en quelques sorte tout les pixels en transparent
donc, il ne reste plus de résidu d'ancienne image (d'ou le probleme soulevé tout a l'heure )
donc , maintenant, c'est tout bon
le code n'est pas optimisé , mais pour ceux que ça interresse voici l'algo
on prends l'image a decouper ,
on en fait une copie (on va bosser sur la copie )
on regarde en pixel 1,1 (ou on demande a l'utilisateur) quelle est la couleur de fond
1er temps :
on scan chaque pixels de l'image (mis en tableau )
si le pixel est different on est sur un sprite , alors on le rempli d'une couleur de selection (avec Fill Area ) ici couleur rouge !!
on garde le X et le Y histoire de savoir ou se trouve le coté haut-gauche du sprite
on continu le scan tant qu'on est sur la couleur de selection ... si on est plus, c'est le xmax qu'on garde
pareil en y , apres ça on a les coordonées du sprite dans l'image
2eme temps :
je cree une image transparente
je parcours le tableau de pixel
si la couleur = rouge (couleur de selection )
je lis les pixel de l'image d'origine (celle que j'ai gardé au debut )
et les ecrit dans l'image buffer actuel
bien sur en meme temp je peint les pixel rouge en couleur de fond (plutot blanc)
comme ça au prochaine Scan, le sprite n'existe plus , puisqu'il correspond a de fond !

ensuite je Grab l'image buffer .. je le presente dans l'interface en donnant sa taille, et je sauve le Sprite
on recommence au prochain clique
