
Charger une image en PNG avec couche Alpha et le découper en plusieurs petit sprite puis les sauvegarder en PNG toujours en gardant les infos de la couche Alpha ...
voici l'image en question pour tester ( Et on critique pas hein ! c'est moi qui l'ai dessiné)

Le grabsprite ne supporte pas l'option #PB_Sprite_AlphaBlending au moieux on a une image toute noir.
Je me suis dit peut être en faisant un clipsprite sur le sprite et en le sauvegardant ...mais là on a plus rien du tout l'image sauvegardé n'est pas reconnu.
Voilà si quelqu'un a une idée !!!
Code : Tout sélectionner
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
End
EndIf
If OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 170, 135, 45, 20, "Quitter")
If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0)=0
MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
End
EndIf
EndIf
Global Nbsprite=0
UsePNGImageDecoder()
UsePNGImageEncoder()
Procedure LoadSpriteAlphaAuto(IdSprite.l,Filename.s,Option.l=0)
;Merci a Cpl.Bator,Case et Ollivier sans qui cette fonction n'existerait pas !
;http://www.purebasic.fr/french/viewtopic.php?t=9324
;On verifie si le sprite est un PNG si il y a une couche alpha
If LCase(GetExtensionPart(Filename.s))="png" And ReadFile(0,Filename.s)
FileSeek(0,25)
If ReadByte(0)=6
Option.l=Option | #PB_Sprite_AlphaBlending;Si c'est le cas alors on rajoute l'option qui va bien
EndIf
CloseFile(0)
EndIf
If LoadSprite(IdSprite,Filename,Option)
ProcedureReturn #True
Else
NbSprite-1
Debug "ERROR:"+Filename
ProcedureReturn #False
EndIf
EndProcedure
Debug LoadSpriteAlphaAuto(10,"house.png")
;Coordonée du sprite (on verra plus tard pour la boucle )
x=4
y=4
Debug GrabSprite(11,32*x,32*y,32,32)
;ClipSprite(10,32*x,32*y,32,32) ; si on test le clip sprite ne pas oublier de changer le numero de sprite dans savesprite
SaveSprite(11,"home_"+Str(x)+"x"+Str(y)+".png",#PB_ImagePlugin_PNG)