img_cut3

Programmation d'applications complexes
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: img_cut3

Message par Shadow »

Dobro, il est bien ton prog !
Stp est ce que tu pourrais amélioré de sorte que il prenne les image 32 bits ?
Je veux dire si mon image contient du transparent et bien la couleur de font sera noir :(

J'aimerais bien que la découpe se fasse avec le même font que l'image.
J'ai des image sur font transparent, avec ton programme ça les découpe bien
mais mes font son noir !

Existe t-il des logiciel similaire à se que fait dobro ?
Dobro, je t’incise à continuer ton programme !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: img_cut3

Message par Micoute »

Tu veux dire "je t'incite" ? Parce que "inciser", il ne va pas aimer.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: img_cut3

Message par Zorro »

Shadow a écrit :Je veux dire si mon image contient du transparent et bien la couleur de font sera noir :(
l'image (la planche de sprites) que je donne en exemple , est un PNG
donc transparente !!
mon prg fonctionne avec les images transparente


maintenant, tu as peut etre trouvé un bug , dans ce cas, post ici l'image qui pose probleme
(si elle ne fait pas 5 Giga ) entre balise [img ]

de plus une image avec fond noir peut s'afficher transparente avec PB ;)

voir :
TransparentSpriteColor(#Sprite, Couleur)
Description
Change la couleur de transparence d'un Sprite (quand il est affiché avec DisplayTransparentSprite()).
Dernière modification par Zorro le jeu. 11/août/2016 17:46, modifié 1 fois.
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: img_cut3

Message par Ar-S »

je t’incise à continuer ton programme !
ça doit faire mal :D

Plus serieusement, cherche stocktabpixel ou stocktabpix, c'est une procedure que j'ai posté plusieurs fois.
tu stocks les pixels ds un tableau a 2 dimensions, et dans ta boucle, tu indiques que si le pixel est de la couleur à remplacer, l'alpha passe à 0.
Tu redessines l'images dans une image vide avec les pixels du tableau, tu as ton image transparente.
Tu la sauves.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: img_cut3

Message par Shadow »

Lol :lol:

Et bien dobro moi je te dit que ça ne fonctionne pas chez moi !
Je ne suis pas en 5.50 hein mais 5.42 LTS. (Peut être pour ça ?)
J'ai essayer en 32 bits et 64, pareil.

Voici ma preuve !:
Image
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: img_cut3

Message par Zorro »

Ligne 82

remplace

Code : Tout sélectionner

CreateImage( #image_sortie,ImageWidth(#image_origine),ImageHeight(#image_origine),32 )
par

Code : Tout sélectionner

CreateImage( #image_sortie,ImageWidth(#image_origine),ImageHeight(#image_origine),32,#PB_Image_Transparent )
desolé pas le temps re regarder mieux , je suis entrain de rentrer du bois ..
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: img_cut3

Message par Shadow »

Merci Zorro mais ça pouvais attendre tu sais ^^
Edit: C'est mieux mais pas encore ça ^^

Moi les bore de mes image sont pas bien rendus.
Une histoire de drawingmode surement :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: img_cut3

Message par Zorro »

quoiqu'il en soit, je ne suis pas satisfait de ce code
je le referai a partir de zero a l'occase :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: img_cut3

Message par Marc56 »

Avec la modification #PB_Image_Transparent aux deux endroits, ça fonctionne bien.
(avant, les images (transparentes à l'origines) sortaient avec un fond noir, mais c'était avant)

Impressionnant ce programme, chapeau. 8)
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: img_cut3

Message par Zorro »

Merci Marc :)

cependant, il n'est pas parfait, il faudrai que j'effectue une deuxieme pass

par exemple sur cette image

Image

la decoupe me donne ceci :

Image
la partie blanche ne devrait pas etre là !!

si je repasse alors, ce resultat dans le Img_cut3 : (donc 2eme pass)
Image

la ça le fait :)

donc, il faudrai que j'envisage de creer plusieurs passage avant sauvegarde :)
(une simple boucle bien placée devrai suffire )

ou peut etre..... qu'il faut que je regarde pourquoi ça ecrit en blanc et pas en Transparent :lol:
j'ai ptete laisser un petit bug trainer ...

bon je retourne rentrer du bois (le courbaturé d'hier :lol: )
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: img_cut3

Message par Shadow »

Oui zorro ton programme est bien et je t'encourage vivement à l'améliorer
car c'est un programme qu'on ne trouve pas facilement, rien trouver à par ton code.
Merci à toi :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: img_cut3

Message par JohnJohnsonSHERMAN »

Super utile quand on veut découper automatiquement une image en plein de petits bouts :P Trés utile ce code, Dobro, merci !
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: img_cut3

Message par Shadow »

C'est pour ça que j'incise (A non pardon, j'incite ^^) dobro à amélioré son programme car il est super utile !
Tu devrais en faire un super programme dobro...
Fais nous un super programme comme tu sais si bien les faire, je sais de quoi tu est capable :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: img_cut3

Message par Zorro »

voila , avant de ré attaquer mon bois
j'ai refait le code page 1 de ce topic

maintenant une image type
Image

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 :)
Dernière modification par Zorro le ven. 12/août/2016 16:27, modifié 1 fois.
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: img_cut3

Message par Marc56 »

Merci pour les explications sur l'algo: simple, efficace.

Tu es même en train de faire la base d'un logiciel d'OCR en une poignée de lignes: Isoler les formes, il ne reste plus ensuite qu'à comparer chaque forme à un masque et selon le pourcentage de correspondance, on a la lettre.

:)
Répondre