Bonjour à tous,
aujourd'hui, je n'ai pas de programme à vous proposer, mais un problème d'images JPEG que je veux transformer en sprites avec GrabSprite(), l'images est composée de 65 cases dont la plus grande partie est composée de 52 cartes à jouer plus 2 jokers et un dos de carte.
L'image à une résolution de 885x500 pixels, pouvez-vous me donner la solution pour récupérer chaque image, s'il vous plaît ?
Je vous en remercie par anticipation.
Comment découper une planche ?
Comment découper une planche ?
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment découper une planche ?
assez compliqué de t'ecrire un code faisant ce travail sans plus d'infos 'taille des cartes", y a t'il un espace entre chacune d'elle et la taille de cet espace est il constant ou avoir l'image en question.
cependant la methode est d'afficher l'image, et d'utiliser grabsprite() pour recuperer chaque carte en utilisant les coordonées de chacune d'elle ou en utilisant des boucle next /for avec un multiplicateur x et y pour le faire automatiquement
exemple
cependant la methode est d'afficher l'image, et d'utiliser grabsprite() pour recuperer chaque carte en utilisant les coordonées de chacune d'elle ou en utilisant des boucle next /for avec un multiplicateur x et y pour le faire automatiquement
exemple
Code : Tout sélectionner
spritenum =0 ; numero du sprite de depart
definir la hauteur et la largeur de chaque sprite
sprite_h=60 ; hauteur du sprite
sprite_l=40 ; largeur du sprite
;definir l'ecart entre chaque sprite qui sera ajoute a chaque coordonees automatiquement
ecart_sprite_h=0 ; ecart entre chaque sprite en pixels horizontalement
ecart_sprite_v=0 ; ecart entre chaque sprite en pixels verticalement
; boucle de decoupage
for y = 0 to 5 ; 6 sprites verticalement
for x=0 to 4 ; 5 sprites horizontalement
grabsprite(spritenum,x*sprite_l+(x*ecart_sprite_h),y*sprite_h+(y*ecart_sprite_v),sprite_l,sprite_h)
; il est possible d'ajouter des options a grabsprite voir la notice pb suivant tes besoins.
spritenum +1 ; on ajoute 1 au numero du sprite
next
next
Re: Comment découper une planche ?
Salut Micoute et a tous.
Bon ça répond pas directement au problème mais j'avais fait un code qui récupère et affiche les carte de la dll windows (cards.dll) qui sert notamment pour le solitaire.
Le lien du post au cas où
et le second exemple
@++
Bon ça répond pas directement au problème mais j'avais fait un code qui récupère et affiche les carte de la dll windows (cards.dll) qui sert notamment pour le solitaire.
Le lien du post au cas où

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Comment découper une planche ?
Merci pour vos réponses, moi j'ai commencé par un modules.
Code : Tout sélectionner
DeclareModule CartesStandards
Declare.s NomCarte(position$)
Declare.s PositionCarte(nomCarte$)
Declare InitCartesStandards()
EndDeclareModule
Module CartesStandards
Global NewMap PositionCartes.s()
Global NewMap NomCartes.s()
Global Dim Familles.s(4)
Global Dim Valeurs.s(13)
Procedure InitCartesStandards()
Familles(0) = "T" ; Trèfle
Familles(1) = "K" ; Karo (Carreau)
Familles(2) = "C" ; Cœur
Familles(3) = "P" ; Pique
Valeurs(0) = "1" ; As
Valeurs(1) = "2"
Valeurs(2) = "3"
Valeurs(3) = "4"
Valeurs(4) = "5"
Valeurs(5) = "6"
Valeurs(6) = "7"
Valeurs(7) = "8"
Valeurs(8) = "9"
Valeurs(9) = "10"
Valeurs(10) = "V"
Valeurs(11) = "D"
Valeurs(12) = "R"
Protected f, v, nom$, pos$, ligne, colonne
For f = 0 To 3
ligne = f + 1
For v = 0 To 12
colonne = v + 1
nom$ = Valeurs(v) + "_" + Familles(f)
pos$ = Str(ligne) + "_" + Str(colonne)
PositionCartes(nom$) = pos$
NomCartes(pos$) = nom$
Next
Next
EndProcedure
Procedure.s NomCarte(position$)
If FindMapElement(NomCartes(), position$)
ProcedureReturn NomCartes()
Else
ProcedureReturn "Inconnue"
EndIf
EndProcedure
Procedure.s PositionCarte(nomCarte$)
If FindMapElement(PositionCartes(), nomCarte$)
ProcedureReturn PositionCartes()
Else
ProcedureReturn "Inconnue"
EndIf
EndProcedure
EndModule
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !