FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
extracteur de sprites amélioré Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
extracteur de sprites amélioré Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
extracteur de sprites amélioré Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
extracteur de sprites amélioré Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
extracteur de sprites amélioré Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
extracteur de sprites amélioré Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
extracteur de sprites amélioré Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
extracteur de sprites amélioré Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
extracteur de sprites amélioré Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
extracteur de sprites amélioré Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
extracteur de sprites amélioré Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
extracteur de sprites amélioré Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
extracteur de sprites amélioré Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
extracteur de sprites amélioré Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
extracteur de sprites amélioré Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

 

 extracteur de sprites amélioré

Aller en bas 
2 participants
AuteurMessage
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

extracteur de sprites amélioré Empty
MessageSujet: extracteur de sprites amélioré   extracteur de sprites amélioré EmptyMer 17 Aoû 2011 - 1:52

Voici la nouvelle mouture

On peut donner n'importe quel angle mais hors de 90, 180, 270 ou inverse on a des trous.

Code:


' Programme pour extraire les sprites d'une feuille de sprites
' V1.01 du 10/08/11 créé par 659_minifly  et modifié par jicehel
'
' <les touches
'
' "flèche gauche" deplace rectangle à gauche
' "flèche droite" deplace rectangle à droite
' "flèche  haut" deplace rectangle vers le haut
' "flèche  bas"  deplace rectangle vers le bas
'
' "+" agrandit le rectangle par pas de 16
' "-" reduit le rectangle par pas de 16
'
' "D" déplace le rectangle de 1 pixel à droite
' "G" déplace le rectangle de 1 pixel à gauche
' "H" déplace le rectangle de 1 pixel vers le haut
' "B" déplace le rectangle de 1 pixel aB " " " Vers le bas
'
' "S" sauvegarde la selection du pixel choisi sous la forme 0001.bmp 0002.bmp etc...
' "F" bascule la couleur du rectangle de Blanc à Noir puis Bleu avant de revenir à Blanc
'
 hide 0

Label enter_key ,Dess_rect,sauve_sprite,Sub_Reticule_blanc,Sub_Reticule_bleu,Sub_Reticule_Noir
Label Sub_B_Plus , Sub_B_moins, Sub_Visualiser

Label Charge_fichier
Label Touche_B
Label Touche_G
Label Touche_H
Label Touche_D

Label Touche_B_Fin
Label Touche_G_Fin
Label Touche_H_Fin
Label Touche_D_Fin
Label Sub_zoomX2

Dim Pi
Dim PI2
Pi=3.1415926535897932
PI2=2*PI
Dim Angle_rot
Dim Mir_X
Dim Mir_Y

Mir_X=1
Mir_Y=1

dim Check_MX
dim Check_My
Dim  Fenetre_01%,Fenetre_02%,Image_01% ,picture01% ,Picture02%
Dim i%  ,J% ,File_out$,A%,x%,y%

Dim  B_Charge

Dim  B_Gauche
Dim  B_Droite
Dim  B_Haut
Dim  B_Bas

Dim  B_Gauche_Fin
Dim  B_Droite_Fin
Dim  B_Haut_Fin
Dim  B_Bas_Fin
Dim  B_Plus
Dim  B_Moins

Dim B_Visualiser
Dim B_ZoomX2

Dim  Dir_Dial
Dim  File_nom$

Dim tbl_red(256,256)
Dim tbl_green(256,256)
Dim tbl_blue(256,256)

Dim Spr_X ,X_Spr
Dim Spr_Y,Y_Spr
dim fine_X
dim fine_y
Dim R_rect%, V_rect%, B_rect%
Dim Reticule_Blanc,Reticule_Noir,Reticule_Bleu


R_rect%      =  255
V_rect%      =  255
B_rect%      =  255

Dim X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5



dim xctr,yctr,srcwidth,scrheight,rotation,n,m ,y,x
dim Rotation_cos,Rotation_sin

Spr_X        =  64
Spr_Y        =  64

Dim File_Num
File_Num=1000

Dim Inc_X,Inc_Y
Inc_X        =    0
Inc_Y        =    0

fine_X        =    0
fine_y        =    0
' ----------------  Fenetres -------------------

Fenetre_01%  =  01
Fenetre_02%  =  02

' ----------------  Pictures -------------------

picture01%    =  13
Picture02%    =  14
Reticule_Blanc=  15
Reticule_Noir =  16
Reticule_Bleu =  17
' ----------------  Images  -------------------
Image_01%    =  101

' ----------------  Boutons -------------------

B_Charge      =  201

B_Gauche      = 202
B_Droite      = 203
B_Haut        = 204
B_Bas        = 205

B_Bas_Fin    = 206
B_Gauche_Fin  = 207
B_Droite_Fin  = 208
B_Haut_Fin    = 209
B_Bas_Fin    = 210
B_Plus        = 211
B_Moins      = 212
B_Visualiser  = 213
B_Zoomx2      = 214
Check_MX      = 215
Check_MY      = 216
Angle_rot    = 217
' ----------------  Boite repertoire -------------------
Dir_Dial      =  301

' ======================================================

Form Fenetre_01%
    width  Fenetre_01%,800
    Height Fenetre_01%,600
    top    Fenetre_01%,0
    left  Fenetre_01%,0
border_small  Fenetre_01%

Form Fenetre_02%
    width  Fenetre_02%,400
    Height Fenetre_02%,600
    top    Fenetre_02%,0
    left  Fenetre_02%,820
   
command_target_is Fenetre_02%

  open_dialog Dir_Dial
' --------------------------------------------------------------
button B_Charge
    top    B_Charge,10
    left  B_Charge,50
 Caption    B_Charge ,"Ouvrir"
 
Button  B_Gauche
    width  B_gauche,30
    top    B_Gauche,150
    left  B_Gauche,50
Caption    B_gauche ,"G"
   
Button  B_Droite
    width  B_Droite,30
    top    B_Droite,150
    left  B_Droite,110
Caption    B_Droite ,"D"

Button  B_Haut
    width  B_Haut,30
    top    B_Haut,120
    left  B_Haut,80
Caption    B_Haut ,"H"

Button  B_Bas
    width  B_Bas,30
    top    B_Bas,180
    left  B_Bas,80
Caption    B_Bas ,"B"

Button  B_Gauche_Fin
    width  B_gauche_Fin,20
    top    B_Gauche_Fin,150
    left  B_Gauche_Fin,160
Caption    B_gauche_Fin ,"G"

Button  B_Droite_Fin
    width  B_Droite_Fin,20
    top    B_Droite_Fin,150
    left  B_Droite_Fin,220
Caption    B_Droite_Fin ,"D"

Button  B_Haut_Fin
    width  B_Haut_Fin,20
    top    B_Haut_Fin,120
    left  B_Haut_Fin,190
Caption    B_Haut_Fin ,"H"

Button  B_Bas_Fin
    width  B_Bas_Fin,20
    top    B_Bas_Fin,180
    left  B_Bas_Fin,190
Caption    B_Bas_Fin ,"B"

Button B_Plus
      Width  B_Plus,20
      HEIGHT B_Plus,20
      TOP    B_Plus, 50
      LEFT  B_Plus, 50
 Caption    B_Plus ,"+"
 
Button B_moins
      Width  B_moins,20
      HEIGHT B_moins,20
      TOP    B_moins, 50
      LEFT  B_moins, 80
 Caption    B_moins ,"-"
 
Button B_Visualiser

      top    B_Visualiser,220
      left  B_Visualiser,50

Caption B_Visualiser,"Visualiser"

Button B_Zoomx2

      top    B_Zoomx2,250
      left  B_Zoomx2,50

Caption B_Zoomx2,"ZoomX2"

Check Check_Mx
        top  Check_Mx,220
      left  Check_Mx,160
      Caption Check_Mx,"Mirror X"
     
Check Check_MY
        top  Check_MY,240
      left  Check_MY,160
      Caption Check_MY,"Mirror Y"
     
combo Angle_rot
      Width  Angle_rot,100
      top    Angle_rot,260
      left  Angle_rot,160
    text  Angle_rot,"0"
item_add Angle_rot,"0"
item_add Angle_rot,"90"
item_add Angle_rot,"180"
item_add Angle_rot,"-90"

' ------------------------------------------------------------
print_target_is Fenetre_02%
 print_locate 140,35
 Print "Couleur réticule :"
 
PICTURE Reticule_Blanc
TOP Reticule_Blanc, 50
LEFT Reticule_Blanc, 150
WIDTH Reticule_Blanc, 20
HEIGHT Reticule_Blanc, 20
HINT Reticule_Blanc, "Reticule Blanc"
2D_TARGET_IS Reticule_Blanc
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 255,255,255
2D_FILL_COLOR 255,255,255
2D_RECTANGLE 3,3,17,17

PICTURE Reticule_Bleu
TOP Reticule_Bleu, 50
LEFT Reticule_Bleu, 170
WIDTH Reticule_Bleu, 20
HEIGHT Reticule_Bleu, 20
HINT Reticule_Bleu, "Reticule Bleu"
2D_TARGET_IS Reticule_Bleu
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 0,0,255
2D_FILL_COLOR 0,0,255
2D_RECTANGLE 3,3,17,17

PICTURE Reticule_noir
TOP Reticule_noir, 50
LEFT Reticule_noir, 190
WIDTH Reticule_noir, 20
HEIGHT Reticule_noir, 20
HINT Reticule_noir, "Reticule noir"
2D_TARGET_IS Reticule_noir
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 0,0,0
2D_FILL_COLOR 0,0,0
2D_RECTANGLE 3,3,17,17


' -----------------------------------------------------------
command_target_is Fenetre_01%

picture picture01%

      width  picture01%,800
      height picture01%,600
      Top    picture01%,0
      left  picture01%,0
     
        command_target_is Fenetre_02%

    picture picture02%

      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

  2d_target_is picture01%
 
' ============================================================================
 
on_key_down Fenetre_01%,enter_key : '                      Fonctions touches

on_click B_Charge,Charge_fichier

on_Click B_Gauche,Touche_G
on_Click B_Haut,Touche_H
on_Click B_Bas,Touche_B
on_Click B_Droite,Touche_D

on_Click B_Gauche_Fin,Touche_G_Fin
on_Click B_Haut_Fin,Touche_H_Fin
on_Click B_Bas_Fin,Touche_B_Fin
on_Click B_Droite_Fin,Touche_D_Fin
On_Click Reticule_Blanc,Sub_Reticule_blanc
On_Click Reticule_Bleu,Sub_Reticule_bleu
On_Click Reticule_Noir,Sub_Reticule_noir
On_click B_Plus ,Sub_B_Plus
On_Click B_moins,Sub_B_moins
On_Click B_Visualiser,Sub_Visualiser
on_Click B_Zoomx2,Sub_zoomX2
end


' ----------------------------------
enter_key:

  set_focus Fenetre_01%
              if key_down_code=37 :'                    Touche fleche Gauche
                  Inc_X=Inc_X-1
                  GoSub Dess_rect
            end_if

            if key_down_code=38 :'                        Touche fleche haut
                  Inc_Y=Inc_Y-1
                  GoSub Dess_rect
            end_if

            if key_down_code=39 :'                        Touche fleche droite
                  Inc_X=Inc_X+1
                  GoSub Dess_rect
            End_If

            if key_down_code=40 :'                        Touche fleche bas
                  Inc_Y=Inc_Y+1
                  GoSub Dess_rect
            end_if

            if key_down_code=68 :'                        Touche D deplacement
                                :'                        fin en X+
                  fine_X=fine_X+1
                  GoSub Dess_rect
            end_if
           
            if key_down_code=71 :'                        Touche G deplacement
                                :'                        fin en X-
                  fine_X=fine_X-1
                    GoSub Dess_rect
            end_if

            if key_down_code=66 :'                        Touche B deplacement
                                :'                        fin en Y+
                  fine_Y=fine_Y+1
                    GoSub Dess_rect
            end_if

            if key_down_code=72 :'                        Touche H deplacement
                                :'                        fin en Y-
                  fine_Y=fine_Y-1
                    GoSub Dess_rect
            end_if



            if key_down_code=86 :'                        Touche V visualisation
                                :'                        sprite
              File_Num=File_Num+1

                  Gosub Sub_Visualiser

            end_if
           
            if key_down_code=107 :'                      Touche + agrandi
                                  :'                      rectangle
              Spr_X        =  Spr_X+16
              Spr_y        =  Spr_y+16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect
            end_if

            if key_down_code=109 :'                      Touche - redui
                                  :'                      rectangle
              Spr_X        =  Spr_X-16
              Spr_y        =  Spr_y-16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect

            end_if
           
            if key_down_code=70 :'                          Touche F bascule la
                                '                          couleur du rectangle
                                '                          Blanc / Noir / Bleu
                if B_rect% = 255
               
                  if R_rect% = 0
                            R_rect% = 255: V_rect% = 255 : B_rect% = 255
                  else
                            R_rect% = 0  : V_rect% = 0  : B_rect% = 0
                  end_if
            else
                            R_rect% = 0  : V_rect% = 0  : B_rect% = 255
                end_if
               
                GoSub Dess_rect
               
            end_if
return

' ---------------------------------------------
Sub_Reticule_blanc:

 R_rect% = 255
 V_rect% = 255
 B_rect% = 255
 2d_pen_color R_rect%,V_rect%,B_rect%
return

Sub_Reticule_bleu:

R_rect% = 0
V_rect% = 0
B_rect% = 255
2d_pen_color R_rect%,V_rect%,B_rect%
return
Sub_Reticule_Noir:

R_rect% = 0
V_rect% = 0
B_rect% = 0
2d_pen_color R_rect%,V_rect%,B_rect%
return
' -----------------------------------
 Sub_B_Plus:
 
              Spr_X        =  Spr_X+16
              Spr_y        =  Spr_y+16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect
 
 return

Sub_B_Moins:

              Spr_X        =  Spr_X-16
              Spr_y        =  Spr_y-16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect


Return

' ----------------------------------

Dess_rect:

2d_pen_color R_rect%,V_rect%,B_rect%

    file_load picture01%,File_nom$

X1=(Spr_X*Inc_X)
Y1=Spr_y*Inc_Y
X2=(Spr_X*(Inc_X+1))
Y2=Spr_y*Inc_Y
X3=(Spr_X*(Inc_X+1))
Y3=Spr_y*(Inc_Y+1)
X4=(Spr_X*Inc_X)
Y4=Spr_y*(Inc_Y+1)
X5=(Spr_X*Inc_X)
Y5=Spr_y*Inc_Y

X1=X1+fine_X
Y1=Y1+Fine_Y
X2=X2+fine_X
Y2=Y2+Fine_Y
X3=X3+fine_X
Y3=Y3+Fine_Y
X4=X4+fine_X
Y4=Y4+Fine_Y
X5=X5+fine_X
Y5=Y5+Fine_Y



            2d_poly_from  X1,Y1
            2d_poly_to    X2,Y2
            2d_poly_to    X3,Y3
            2d_poly_to    X4,Y4
            2d_poly_to    X5,Y5


Spr_X=X_Spr
Spr_Y=Y_Spr
return
' ----------------------------------
Touche_G:
                  Inc_X=Inc_X-1
                  GoSub Dess_rect




Return
Touche_H:
                  Inc_Y=Inc_Y-1
                  GoSub Dess_rect



Return

Touche_D:

                  Inc_X=Inc_X+1
                  GoSub Dess_rect

Return


Touche_B:
                  Inc_Y=Inc_Y+1
                  GoSub Dess_rect

return
' ------------------------------------------------------------
Touche_G_Fin:

                  fine_X=fine_X-1
                  GoSub Dess_rect


Return

Touche_H_Fin:

                  fine_Y=fine_Y-1
                  GoSub Dess_rect

Return

Touche_D_Fin:

                  fine_X=fine_X+1
                  GoSub Dess_rect

Return

Touche_B_Fin:

                fine_Y=fine_Y+1
                GoSub Dess_rect

Return
' ----------------------------------
sauve_sprite:


file_load picture01%,File_nom$
 
for i%=1 to Spr_X-1
  for j%=1 to Spr_X-1
 
      tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%)
        tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%)
        tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)
 
 
    next J%
next i%
 
      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

 ' rotation=(2*3.1415926535897932*90)/360
 
  ' 3.1415926535897932
 
    rotation=val(text$(Angle_rot))
   
  rotation= rotation*PI2/360
 
  if checked(Check_MX)=1
  Mir_X=-1
  else
  Mir_X=1
  end_if
  if checked(Check_MY)=1
  Mir_Y=-1
  else
  Mir_Y=1
  end_if

 
  xctr = Spr_X / 2
  yctr = Spr_y / 2
 
    Rotation_Sin=sin(rotation)
    Rotation_cos=cos(rotation)

     
      color picture02%,0,0,0
     
    2d_target_is picture02%
 
image File_Num

  for y=1 to Spr_Y

        for x=1 to Spr_X
 
  2d_pen_color tbl_red(y,x),tbl_green(y,x),tbl_blue(y,x)
 

' Nouveau point du sprite apres rotation

  '  m = int((x - xctr) * Rotation_cos - (y - yctr) * Rotation_Sin + xctr +.5 )*Mir_X
  '  n = int((x - xctr) * Rotation_Sin + (y - yctr) * Rotation_cos + yctr +.5 )*Mir_Y
   
   
        ' ********* voici la formule de la rotation d'image *********
            m= (xctr+(x-xctr) * Rotation_cos +( Y-xctr)* Rotation_Sin)*Mir_X
            n= (xctr-(x-xctr) * Rotation_Sin + (Y-xctr)* Rotation_cos)*Mir_Y
        ' *****************************************************
   
   
   
   
 ' Verification de l'axe de symétrie

 iF Mir_X=-1 and Mir_y=1 then 2D_point m+(spr_x),n
 iF Mir_X=1 and Mir_y=-1 then 2D_point m,n+(Spr_Y)
 iF Mir_X=-1 and Mir_y=-1 then 2D_point m+(spr_x),n+(Spr_Y)
 iF Mir_X=1 and Mir_y=1 then 2D_point m,n
 
 ' Dessine le point
                      2D_point m,n
        next x
  next y
 

  2d_image_copy File_Num,0,0,Spr_X,Spr_Y
 
  i%=len(File_nom$)

File_out$=left$(File_nom$,i%-4)


  file_save File_Num,File_out$+str$(File_Num)+".bmp"


2d_target_is picture01%
' Gosub Dess_rect
 

Return

' -----------------------------------------
Sub_Visualiser:

  File_Num=File_Num+1
 
 file_load picture01%,File_nom$
 

for i%=1 to Spr_X-1
  for j%=1 to Spr_X-1

      tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%)
        tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%)
        tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)


    next J%
next i%

      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

  ' radian=(2*pi*degree)/360
  ' 3.1415926535897932
 
 rotation=val(text$(Angle_rot))
 
  print 0,text$(Angle_rot)
  rotation= rotation*PI2/360
 
  if checked(Check_MX)=1
  Mir_X=-1
  else
  Mir_X=1
  end_if
  if checked(Check_MY)=1
  Mir_Y=-1
  else
  Mir_Y=1
  end_if


  xctr = Spr_X / 2
  yctr = Spr_y / 2

    Rotation_Sin=sin(rotation)
    Rotation_cos=cos(rotation)


      color picture02%,0,0,0

    2d_target_is picture02%

image File_Num

  for y=1 to Spr_Y

        for x=1 to Spr_X

  2d_pen_color tbl_red(y,x),tbl_green(y,x),tbl_blue(y,x)


' Nouveau point du sprite apres rotation

 '    m = int((x - xctr) * Rotation_cos - (y - yctr) * Rotation_Sin + xctr +.5 )*Mir_X
 '  n = int((x - xctr) * Rotation_Sin + (y - yctr) * Rotation_cos + yctr +.5 )*Mir_Y


        ' ********* voici la formule de la rotation d'image *********
            m= (xctr+(x-xctr) * Rotation_cos +( Y-xctr)* Rotation_Sin)*Mir_X
            n= (xctr-(x-xctr) * Rotation_Sin + (Y-xctr)* Rotation_cos)*Mir_Y
        ' *****************************************************


    2d_target_is picture02%

 ' Verification de l'axe de symétrie

 iF Mir_X=-1 and Mir_y=1 then 2D_point m+(spr_x),n
 iF Mir_X=1 and Mir_y=-1 then 2D_point m,n+(Spr_Y)
 iF Mir_X=-1 and Mir_y=-1 then 2D_point m+(spr_x),n+(Spr_Y)
 iF Mir_X=1 and Mir_y=1 then 2D_point m,n

 ' Dessine le point
                      2D_point m,n
        next x
  next y
 
  2d_image_copy File_Num,0,0,Spr_X,Spr_Y
 
  file_save File_Num,"temp.bmp"
 
 2d_target_is picture01%
 
 Gosub Dess_rect
return
' -----------------------------------------
Sub_zoomX2:
      left  picture02%,(400-(Spr_X*2))/2
      width  picture02%, Spr_X*2
      height picture02%, Spr_Y*2
     
      file_load picture02%,"temp.bmp"
      stretch_on picture02%
Return

' -----------------------------------------
Charge_fichier:


    filter Dir_Dial,"SpriteSheet | *.Bmp"
rem puis l'utiliser

File_nom$=file_name$(Dir_Dial)

      2d_target_is picture01%

    file_load picture01%,File_nom$
   
full_space picture01%

    set_focus Fenetre_01%

  stretch_on picture01%
Return
 
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

extracteur de sprites amélioré Empty
MessageSujet: Re: extracteur de sprites amélioré   extracteur de sprites amélioré EmptyMer 17 Aoû 2011 - 10:00

Cool, désolé, je ne fais pas beaucoup de programmation en ce moment, mais j'aime Smile
(L'habitude de Facebook en ce moment ^^) .
Propositions d'amélioration:
- création d'animations des sprites (Créer un fichier "anm" par exemple avec le numéros des images à enchainer et lire les images dans un endroit du programme (genre sous le boutton))

- création optinonnel en même temps que du bmp d'un fichier texte avec les informations sur le sprites (dimensions) et un ligne de commentaire optionnelle (genre usage du sprite)


Dernière édition par Jicehel le Mer 17 Aoû 2011 - 11:06, édité 1 fois
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

extracteur de sprites amélioré Empty
MessageSujet: Re: extracteur de sprites amélioré   extracteur de sprites amélioré EmptyMer 17 Aoû 2011 - 10:07

j'avais oublié la sauvegarde du sprite et quitter le programme.
Chose faites:

Code:


' Programme pour extraire les sprites d'une feuille de sprites
' V1.0 du 10/08/11 créé par 659_minifly  et modifié par jicehel
'
' <les touches
'
' "flèche gauche" deplace rectangle à gauche
' "flèche droite" deplace rectangle à droite
' "flèche  haut" deplace rectangle vers le haut
' "flèche  bas"  deplace rectangle vers le bas
'
' "+" agrandit le rectangle par pas de 16
' "-" reduit le rectangle par pas de 16
'
' "D" déplace le rectangle de 1 pixel à droite
' "G" déplace le rectangle de 1 pixel à gauche
' "H" déplace le rectangle de 1 pixel vers le haut
' "B" déplace le rectangle de 1 pixel aB " " " Vers le bas
' "V" Visualisation du sprite
' "S" sauvegarde la selection du pixel choisi sous la forme 0001.bmp 0002.bmp etc...
' "F" bascule la couleur du rectangle de Blanc à Noir puis Bleu avant de revenir à Blanc
'
 hide 0

Label enter_key ,Dess_rect,sauve_sprite,Sub_Reticule_blanc,Sub_Reticule_bleu,Sub_Reticule_Noir
Label Sub_B_Plus , Sub_B_moins, Sub_Visualiser,Sub_Sauve

Label Charge_fichier
Label Touche_B
Label Touche_G
Label Touche_H
Label Touche_D

Label Touche_B_Fin
Label Touche_G_Fin
Label Touche_H_Fin
Label Touche_D_Fin
Label Sub_zoomX2
Label sub_Quit

Dim Pi
Dim PI2
Pi=3.1415926535897932
PI2=2*PI
Dim Angle_rot
Dim Mir_X
Dim Mir_Y

Mir_X=1
Mir_Y=1

dim Check_MX
dim Check_My
Dim  Fenetre_01%,Fenetre_02%,Image_01% ,picture01% ,Picture02%
Dim i%  ,J% ,File_out$,A%,x%,y%

Dim  B_Charge

Dim  B_Gauche
Dim  B_Droite
Dim  B_Haut
Dim  B_Bas

Dim  B_Gauche_Fin
Dim  B_Droite_Fin
Dim  B_Haut_Fin
Dim  B_Bas_Fin
Dim  B_Plus
Dim  B_Moins

Dim B_Visualiser
Dim B_ZoomX2

Dim B_Sauve
Dim B_Quit

Dim  Dir_Dial
Dim  File_nom$

Dim tbl_red(256,256)
Dim tbl_green(256,256)
Dim tbl_blue(256,256)

Dim Spr_X ,X_Spr
Dim Spr_Y,Y_Spr
dim fine_X
dim fine_y
Dim R_rect%, V_rect%, B_rect%
Dim Reticule_Blanc,Reticule_Noir,Reticule_Bleu


R_rect%      =  255
V_rect%      =  255
B_rect%      =  255

Dim X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5



dim xctr,yctr,srcwidth,scrheight,rotation,n,m ,y,x
dim Rotation_cos,Rotation_sin

Spr_X        =  64
Spr_Y        =  64

Dim File_Num
File_Num=1000

Dim Inc_X,Inc_Y
Inc_X        =    0
Inc_Y        =    0

fine_X        =    0
fine_y        =    0
' ----------------  Fenetres -------------------

Fenetre_01%  =  01
Fenetre_02%  =  02

' ----------------  Pictures -------------------

picture01%    =  13
Picture02%    =  14
Reticule_Blanc=  15
Reticule_Noir =  16
Reticule_Bleu =  17
' ----------------  Images  -------------------
Image_01%    =  101

' ----------------  Boutons -------------------

B_Charge      =  201

B_Gauche      = 202
B_Droite      = 203
B_Haut        = 204
B_Bas        = 205

B_Bas_Fin    = 206
B_Gauche_Fin  = 207
B_Droite_Fin  = 208
B_Haut_Fin    = 209
B_Bas_Fin    = 210
B_Plus        = 211
B_Moins      = 212
B_Visualiser  = 213
B_Zoomx2      = 214
Check_MX      = 215
Check_MY      = 216
Angle_rot    = 217
B_sauve      = 218
B_Quit        = 219
' ----------------  Boite repertoire -------------------
Dir_Dial      =  301

' ======================================================

Form Fenetre_01%
    width  Fenetre_01%,800
    Height Fenetre_01%,600
    top    Fenetre_01%,0
    left  Fenetre_01%,0
border_small  Fenetre_01%

Form Fenetre_02%
    width  Fenetre_02%,400
    Height Fenetre_02%,600
    top    Fenetre_02%,0
    left  Fenetre_02%,820
   
command_target_is Fenetre_02%

  open_dialog Dir_Dial
' --------------------------------------------------------------
button B_Charge
    top    B_Charge,10
    left  B_Charge,50
 Caption    B_Charge ,"Ouvrir"
 
Button  B_Gauche
    width  B_gauche,30
    top    B_Gauche,150
    left  B_Gauche,50
Caption    B_gauche ,"G"
   
Button  B_Droite
    width  B_Droite,30
    top    B_Droite,150
    left  B_Droite,110
Caption    B_Droite ,"D"

Button  B_Haut
    width  B_Haut,30
    top    B_Haut,120
    left  B_Haut,80
Caption    B_Haut ,"H"

Button  B_Bas
    width  B_Bas,30
    top    B_Bas,180
    left  B_Bas,80
Caption    B_Bas ,"B"

Button  B_Gauche_Fin
    width  B_gauche_Fin,20
    top    B_Gauche_Fin,150
    left  B_Gauche_Fin,160
Caption    B_gauche_Fin ,"G"

Button  B_Droite_Fin
    width  B_Droite_Fin,20
    top    B_Droite_Fin,150
    left  B_Droite_Fin,220
Caption    B_Droite_Fin ,"D"

Button  B_Haut_Fin
    width  B_Haut_Fin,20
    top    B_Haut_Fin,120
    left  B_Haut_Fin,190
Caption    B_Haut_Fin ,"H"

Button  B_Bas_Fin
    width  B_Bas_Fin,20
    top    B_Bas_Fin,180
    left  B_Bas_Fin,190
Caption    B_Bas_Fin ,"B"

Button B_Plus
      Width  B_Plus,20
      HEIGHT B_Plus,20
      TOP    B_Plus, 50
      LEFT  B_Plus, 50
 Caption    B_Plus ,"+"
 
Button B_moins
      Width  B_moins,20
      HEIGHT B_moins,20
      TOP    B_moins, 50
      LEFT  B_moins, 80
 Caption    B_moins ,"-"
 
Button B_Visualiser

      top    B_Visualiser,220
      left  B_Visualiser,50

Caption B_Visualiser,"Visualiser"

Button B_Zoomx2

      top    B_Zoomx2,250
      left  B_Zoomx2,50

Caption B_Zoomx2,"ZoomX2"

Check Check_Mx
        top  Check_Mx,220
      left  Check_Mx,160
      Caption Check_Mx,"Mirror X"
     
Check Check_MY
        top  Check_MY,240
      left  Check_MY,160
      Caption Check_MY,"Mirror Y"
     
combo Angle_rot
      Width  Angle_rot,100
      top    Angle_rot,260
      left  Angle_rot,160
    text  Angle_rot,"0"
item_add Angle_rot,"0"
item_add Angle_rot,"90"
item_add Angle_rot,"180"
item_add Angle_rot,"-90"

Button B_Sauve
        Top B_Sauve,220
        Left B_sauve,300
 Caption B_Sauve,"Sauvegarde"
 
 Button B_Quit
        Top B_Quit,250
        Left B_Quit,300
 Caption B_Quit,"Quitte"
' ------------------------------------------------------------
print_target_is Fenetre_02%
 print_locate 140,35
 Print "Couleur réticule :"
 
PICTURE Reticule_Blanc
TOP Reticule_Blanc, 50
LEFT Reticule_Blanc, 150
WIDTH Reticule_Blanc, 20
HEIGHT Reticule_Blanc, 20
HINT Reticule_Blanc, "Reticule Blanc"
2D_TARGET_IS Reticule_Blanc
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 255,255,255
2D_FILL_COLOR 255,255,255
2D_RECTANGLE 3,3,17,17

PICTURE Reticule_Bleu
TOP Reticule_Bleu, 50
LEFT Reticule_Bleu, 170
WIDTH Reticule_Bleu, 20
HEIGHT Reticule_Bleu, 20
HINT Reticule_Bleu, "Reticule Bleu"
2D_TARGET_IS Reticule_Bleu
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 0,0,255
2D_FILL_COLOR 0,0,255
2D_RECTANGLE 3,3,17,17

PICTURE Reticule_noir
TOP Reticule_noir, 50
LEFT Reticule_noir, 190
WIDTH Reticule_noir, 20
HEIGHT Reticule_noir, 20
HINT Reticule_noir, "Reticule noir"
2D_TARGET_IS Reticule_noir
2D_PEN_COLOR 192,192,192
2D_PEN_WIDTH 2
2D_RECTANGLE 1,1,20,20
2D_PEN_WIDTH 1
2D_PEN_COLOR 0,0,0
2D_FILL_COLOR 0,0,0
2D_RECTANGLE 3,3,17,17


' -----------------------------------------------------------
command_target_is Fenetre_01%

picture picture01%

      width  picture01%,800
      height picture01%,600
      Top    picture01%,0
      left  picture01%,0
     
        command_target_is Fenetre_02%

    picture picture02%

      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

  2d_target_is picture01%
 
' ============================================================================
 
on_key_down Fenetre_01%,enter_key : '                      Fonctions touches

on_click B_Charge,Charge_fichier

on_Click B_Gauche,Touche_G
on_Click B_Haut,Touche_H
on_Click B_Bas,Touche_B
on_Click B_Droite,Touche_D

on_Click B_Gauche_Fin,Touche_G_Fin
on_Click B_Haut_Fin,Touche_H_Fin
on_Click B_Bas_Fin,Touche_B_Fin
on_Click B_Droite_Fin,Touche_D_Fin
On_Click Reticule_Blanc,Sub_Reticule_blanc
On_Click Reticule_Bleu,Sub_Reticule_bleu
On_Click Reticule_Noir,Sub_Reticule_noir
On_click B_Plus ,Sub_B_Plus
On_Click B_moins,Sub_B_moins
On_Click B_Visualiser,Sub_Visualiser
on_Click B_Zoomx2,Sub_zoomX2
On_click B_Sauve,sub_Sauve
On_click B_Quit,sub_Quit
end


' ----------------------------------
enter_key:

  set_focus Fenetre_01%
              if key_down_code=37 :'                    Touche fleche Gauche
                  Inc_X=Inc_X-1
                  GoSub Dess_rect
            end_if

            if key_down_code=38 :'                        Touche fleche haut
                  Inc_Y=Inc_Y-1
                  GoSub Dess_rect
            end_if

            if key_down_code=39 :'                        Touche fleche droite
                  Inc_X=Inc_X+1
                  GoSub Dess_rect
            End_If

            if key_down_code=40 :'                        Touche fleche bas
                  Inc_Y=Inc_Y+1
                  GoSub Dess_rect
            end_if

            if key_down_code=68 :'                        Touche D deplacement
                                :'                        fin en X+
                  fine_X=fine_X+1
                  GoSub Dess_rect
            end_if
           
            if key_down_code=71 :'                        Touche G deplacement
                                :'                        fin en X-
                  fine_X=fine_X-1
                    GoSub Dess_rect
            end_if

            if key_down_code=66 :'                        Touche B deplacement
                                :'                        fin en Y+
                  fine_Y=fine_Y+1
                    GoSub Dess_rect
            end_if

            if key_down_code=72 :'                        Touche H deplacement
                                :'                        fin en Y-
                  fine_Y=fine_Y-1
                    GoSub Dess_rect
            end_if

          if key_down_code=83 :'                        Touche S sauve image
                              :'

                    GoSub Sub_Sauve
            end_if

            if key_down_code=86 :'                        Touche V visualisation
                                :'                        sprite
              File_Num=File_Num+1

                  Gosub Sub_Visualiser

            end_if
           
            if key_down_code=107 :'                      Touche + agrandi
                                  :'                      rectangle
              Spr_X        =  Spr_X+16
              Spr_y        =  Spr_y+16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect
            end_if

            if key_down_code=109 :'                      Touche - redui
                                  :'                      rectangle
              Spr_X        =  Spr_X-16
              Spr_y        =  Spr_y-16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect

            end_if
           
            if key_down_code=70 :'                          Touche F bascule la
                                '                          couleur du rectangle
                                '                          Blanc / Noir / Bleu
                if B_rect% = 255
               
                  if R_rect% = 0
                            R_rect% = 255: V_rect% = 255 : B_rect% = 255
                  else
                            R_rect% = 0  : V_rect% = 0  : B_rect% = 0
                  end_if
            else
                            R_rect% = 0  : V_rect% = 0  : B_rect% = 255
                end_if
               
                GoSub Dess_rect
               
            end_if
return

' ---------------------------------------------
Sub_Reticule_blanc:

 R_rect% = 255
 V_rect% = 255
 B_rect% = 255
 2d_pen_color R_rect%,V_rect%,B_rect%
return

Sub_Reticule_bleu:

R_rect% = 0
V_rect% = 0
B_rect% = 255
2d_pen_color R_rect%,V_rect%,B_rect%
return
Sub_Reticule_Noir:

R_rect% = 0
V_rect% = 0
B_rect% = 0
2d_pen_color R_rect%,V_rect%,B_rect%
return
' -----------------------------------
 Sub_B_Plus:
 
              Spr_X        =  Spr_X+16
              Spr_y        =  Spr_y+16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect
 
 return

Sub_B_Moins:

              Spr_X        =  Spr_X-16
              Spr_y        =  Spr_y-16
              X_spr        = Spr_X
              Y_Spr        = Spr_Y
                GoSub Dess_rect


Return

' ----------------------------------

Dess_rect:

2d_pen_color R_rect%,V_rect%,B_rect%

    file_load picture01%,File_nom$

X1=(Spr_X*Inc_X)
Y1=Spr_y*Inc_Y
X2=(Spr_X*(Inc_X+1))
Y2=Spr_y*Inc_Y
X3=(Spr_X*(Inc_X+1))
Y3=Spr_y*(Inc_Y+1)
X4=(Spr_X*Inc_X)
Y4=Spr_y*(Inc_Y+1)
X5=(Spr_X*Inc_X)
Y5=Spr_y*Inc_Y

X1=X1+fine_X
Y1=Y1+Fine_Y
X2=X2+fine_X
Y2=Y2+Fine_Y
X3=X3+fine_X
Y3=Y3+Fine_Y
X4=X4+fine_X
Y4=Y4+Fine_Y
X5=X5+fine_X
Y5=Y5+Fine_Y



            2d_poly_from  X1,Y1
            2d_poly_to    X2,Y2
            2d_poly_to    X3,Y3
            2d_poly_to    X4,Y4
            2d_poly_to    X5,Y5


Spr_X=X_Spr
Spr_Y=Y_Spr
return
' ----------------------------------
Touche_G:
                  Inc_X=Inc_X-1
                  GoSub Dess_rect




Return
Touche_H:
                  Inc_Y=Inc_Y-1
                  GoSub Dess_rect



Return

Touche_D:

                  Inc_X=Inc_X+1
                  GoSub Dess_rect

Return


Touche_B:
                  Inc_Y=Inc_Y+1
                  GoSub Dess_rect

return
' ------------------------------------------------------------
Touche_G_Fin:

                  fine_X=fine_X-1
                  GoSub Dess_rect


Return

Touche_H_Fin:

                  fine_Y=fine_Y-1
                  GoSub Dess_rect

Return

Touche_D_Fin:

                  fine_X=fine_X+1
                  GoSub Dess_rect

Return

Touche_B_Fin:

                fine_Y=fine_Y+1
                GoSub Dess_rect

Return
' ----------------------------------
sauve_sprite:


file_load picture01%,File_nom$
 
for i%=1 to Spr_X-1
  for j%=1 to Spr_X-1
 
      tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%)
        tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%)
        tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)
 
 
    next J%
next i%
 
      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

 ' rotation=(2*3.1415926535897932*90)/360
 
  ' 3.1415926535897932
 
    rotation=val(text$(Angle_rot))
   
  rotation= rotation*PI2/360
 
  if checked(Check_MX)=1
  Mir_X=-1
  else
  Mir_X=1
  end_if
  if checked(Check_MY)=1
  Mir_Y=-1
  else
  Mir_Y=1
  end_if

 
  xctr = Spr_X / 2
  yctr = Spr_y / 2
 
    Rotation_Sin=sin(rotation)
    Rotation_cos=cos(rotation)

     
      color picture02%,0,0,0
     
    2d_target_is picture02%
 
image File_Num

  for y=1 to Spr_Y

        for x=1 to Spr_X
 
  2d_pen_color tbl_red(y,x),tbl_green(y,x),tbl_blue(y,x)
 

' Nouveau point du sprite apres rotation

  '  m = int((x - xctr) * Rotation_cos - (y - yctr) * Rotation_Sin + xctr +.5 )*Mir_X
  '  n = int((x - xctr) * Rotation_Sin + (y - yctr) * Rotation_cos + yctr +.5 )*Mir_Y
   
   
        ' ********* voici la formule de la rotation d'image *********
            m= (xctr+(x-xctr) * Rotation_cos +( Y-xctr)* Rotation_Sin)*Mir_X
            n= (xctr-(x-xctr) * Rotation_Sin + (Y-xctr)* Rotation_cos)*Mir_Y
        ' *****************************************************
   
   
   
   
 ' Verification de l'axe de symétrie

 iF Mir_X=-1 and Mir_y=1 then 2D_point m+(spr_x),n
 iF Mir_X=1 and Mir_y=-1 then 2D_point m,n+(Spr_Y)
 iF Mir_X=-1 and Mir_y=-1 then 2D_point m+(spr_x),n+(Spr_Y)
 iF Mir_X=1 and Mir_y=1 then 2D_point m,n
 
 ' Dessine le point
                      2D_point m,n
        next x
  next y
 

  2d_image_copy File_Num,0,0,Spr_X,Spr_Y
 
  i%=len(File_nom$)

File_out$=left$(File_nom$,i%-4)


  file_save File_Num,File_out$+str$(File_Num)+".bmp"


2d_target_is picture01%
' Gosub Dess_rect
 

Return

' -----------------------------------------
Sub_Visualiser:

  File_Num=File_Num+1
 
 file_load picture01%,File_nom$
 

for i%=1 to Spr_X-1
  for j%=1 to Spr_X-1

      tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%)
        tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%)
        tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)


    next J%
next i%

      width  picture02%, Spr_X
      height picture02%, Spr_Y
      Top    picture02%,400
      left  picture02%,(300-spr_x)/2

  ' radian=(2*pi*degree)/360
  ' 3.1415926535897932
 
 rotation=val(text$(Angle_rot))
 
  rotation= rotation*PI2/360
 
  if checked(Check_MX)=1
  Mir_X=-1
  else
  Mir_X=1
  end_if
  if checked(Check_MY)=1
  Mir_Y=-1
  else
  Mir_Y=1
  end_if


  xctr = Spr_X / 2
  yctr = Spr_y / 2

    Rotation_Sin=sin(rotation)
    Rotation_cos=cos(rotation)


      color picture02%,0,0,0

    2d_target_is picture02%

image File_Num

  for y=1 to Spr_Y

        for x=1 to Spr_X

  2d_pen_color tbl_red(y,x),tbl_green(y,x),tbl_blue(y,x)


' Nouveau point du sprite apres rotation

 '    m = int((x - xctr) * Rotation_cos - (y - yctr) * Rotation_Sin + xctr +.5 )*Mir_X
 '  n = int((x - xctr) * Rotation_Sin + (y - yctr) * Rotation_cos + yctr +.5 )*Mir_Y


        ' ********* voici la formule de la rotation d'image *********
            m= (xctr+(x-xctr) * Rotation_cos +( Y-xctr)* Rotation_Sin)*Mir_X
            n= (xctr-(x-xctr) * Rotation_Sin + (Y-xctr)* Rotation_cos)*Mir_Y
        ' *****************************************************


    2d_target_is picture02%

 ' Verification de l'axe de symétrie

 iF Mir_X=-1 and Mir_y=1 then 2D_point m+(spr_x),n
 iF Mir_X=1 and Mir_y=-1 then 2D_point m,n+(Spr_Y)
 iF Mir_X=-1 and Mir_y=-1 then 2D_point m+(spr_x),n+(Spr_Y)
 iF Mir_X=1 and Mir_y=1 then 2D_point m,n

 ' Dessine le point
                      2D_point m,n
        next x
  next y
 
  2d_image_copy File_Num,0,0,Spr_X,Spr_Y
 
  file_save File_Num,"temp.bmp"
 
 2d_target_is picture01%
 
 Gosub Dess_rect
return
' -----------------------------------------
Sub_zoomX2:
      left  picture02%,(400-(Spr_X*2))/2
      width  picture02%, Spr_X*2
      height picture02%, Spr_Y*2
     
      file_load picture02%,"temp.bmp"
      stretch_on picture02%
Return

' -----------------------------------------
Charge_fichier:


    filter Dir_Dial,"SpriteSheet | *.Bmp"
rem puis l'utiliser

File_nom$=file_name$(Dir_Dial)

      2d_target_is picture01%

    file_load picture01%,File_nom$
   
full_space picture01%

    set_focus Fenetre_01%

  stretch_on picture01%
Return

Sub_Sauve:

  i%=len(File_nom$)

File_out$=left$(File_nom$,i%-4)


  file_save File_Num,File_out$+str$(File_Num)+".bmp"


2d_target_is picture01%


Return

Sub_Quit:

Terminate

return
Revenir en haut Aller en bas
Contenu sponsorisé





extracteur de sprites amélioré Empty
MessageSujet: Re: extracteur de sprites amélioré   extracteur de sprites amélioré Empty

Revenir en haut Aller en bas
 
extracteur de sprites amélioré
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Extracteur de sprites
» Un extracteur de procédures
» WRAP_VALUE amélioré
» Un scène2d amélioré...
» Un presse-papier amélioré

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: