Page 1 sur 1
problème pour dessiner une image avec alpha sur un sprite
Publié : lun. 16/mai/2011 19:58
par Thyphoon
voilà je dois créer un sprite a partir d'une image chargé en tant qu'image 32bit avec alpha.Mais j'ai des trucs curieux au niveau de la transparence pouvez vous essayer ce code avec cette image et me dire si le fond est bien totalement transparent au tour des caractères ? moi j'ai des carré blanc qui apparaisse testé PB4.51 et PB4.60B3 chez moi
Uploaded with
ImageShack.us
et voilà le code
Code : Tout sélectionner
UsePNGImageDecoder()
If InitSprite() And InitSprite3D() And InitSound()
If InitKeyboard() And InitMouse()
winMain = OpenWindow(#PB_Any,0,0,640,480,"Press [Esc] to close",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(winMain), 0, 0, 640, 480, 1, 0, 0)
SetFrameRate(60)
EndIf
Else
MessageRequester("","Unable to initsprite") :
EndIf
LoadImage(0,"font_1.png")
CreateSprite(0,64,64,#PB_Sprite_Texture|#PB_Sprite_Alpha)
StartDrawing(SpriteOutput(0))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(ImageID(0),0,0)
Box(64,64,-10,-10,#Red)
StopDrawing()
CreateSprite3D(0,0)
Repeat
Delay(1)
EventID = WindowEvent()
ExamineKeyboard()
ClearScreen(0)
StartDrawing(ScreenOutput())
Box(0,0,320,200,#Blue)
DrawImage(ImageID(0),50,400)
StopDrawing()
Start3D()
x=x+1
If x>640:x=0:EndIf
y=y+1
If y>320:y=0:EndIf
DisplaySprite3D(0,x,y)
Stop3D()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) Or EventID = #PB_Event_CloseWindow
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:06
par Chris
Idem chez moi (4.51)
Une rangée verticale de carrés blanc à gauche, et une horizontale au dessus.
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:22
par Thyphoon
Chris a écrit :Idem chez moi (4.51)
Une rangée verticale de carrés blanc à gauche, et une horizontale au dessus.
Merci beaucoup d'avoir prit le temps de testé
je vais peut être posté le bug sur le forum anglais qu'en penses tu ?
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:29
par case
Note: Les modes suivants ne fonctionnent qu'avec ImageOutput(). Ils sont ignorés pour toutes les autres sorties:
#PB_2DDrawing_AlphaBlend
#PB_2DDrawing_AlphaClip
#PB_2DDrawing_AlphaChannel
#PB_2DDrawing_AllChannels
#PB_2DDrawing_Gradient
#PB_2DDrawing_CustomFilter
par contre elle est zarbi la sortie de l'image...
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:34
par Cool Dji
Salut Thyphon,
Yep, bizarre ton .png
je l'ai chargé directement avec un loadsprite et les bandes blanches apparaissent aussi
J'ai transformé l'image en mettant un fond noir : plus de bandes blanches ni avec ta routine creatsprite ni avec un loadsprite...
A +
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:36
par case
oui pareil je l'ai re-sauvé avec psp et la plus de bug de bande blanches.
je pense qu'il était dans un drôle de format il sort d’où ?

Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:38
par Thyphoon
c'est curieux ça ! pourtant j'ai absolument besoin d'utiliser une couche alpha... l'image a été fait dans photoshop ! et je ne vois jamais ces bandes blanche...dans photoshop je ne me l'explique pas ... et j'ai plein d'autre image qui sont des png+alpha mais chargé en tant que sprite et elle n'on pas de problème...
C'est dommage de ne toujours pas avoir un ClipSprite3D d'origine dans pb ça m'aurait évité de passé part cette méthode
Edit: J'avais pas vu ton message Case ça vient d'une image fabriqué et sauvegardé avec PB et dont le fond a été retirer pour la transparence dans photoshop... donc le problème vient de mon image et pas de purebasic ... Merci en tout cas a tous d'avoir essayé ! :oP
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:41
par case
oui enfin là , même si t'avais pas le bug de bande blanches de ton image, tu pourrais pas utiliser de couche alpha pareil...
vu que ça marche pas si tu fait un drawimage dans un sprite... voir mon post 3 messages plus haut
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:41
par djes
Pareil pour moi. J'ai réenregistré l'image avec photoshop et ça fait toujours la même chose. Le code suivant est plus concis :
Code : Tout sélectionner
UsePNGImageDecoder()
If InitSprite() And InitSprite3D() And InitSound()
If InitKeyboard() And InitMouse()
winMain = OpenWindow(#PB_Any,0,0,640,480,"Press [Esc] to close",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(winMain), 0, 0, 640, 480, 1, 0, 0)
EndIf
Else
MessageRequester("","Unable to initsprite") :
EndIf
LoadImage(0,"font1x.png")
Repeat
EventID = WindowEvent()
ExamineKeyboard()
StartDrawing(ScreenOutput())
DrawImage(ImageID(0),0,0)
StopDrawing()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) Or EventID = #PB_Event_CloseWindow
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:50
par Cool Dji
J'ai aussi utilisé photoshop pour aplatir l'image avec un fond noir...
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:55
par Thyphoon
merci !
effectivement j'avais raté le fait que certain flag ne marchait qu'avec imageoutput()
je vais revoir pour faire ça différement !
merci a tous !
Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 20:56
par Chris
C'est quoi ce forum de rupins ou ils ont tous Photoshop?

Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 21:16
par case
j'ai pas photoshop j'ai paint shop pro

Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 21:26
par djes
Chris a écrit :C'est quoi ce forum de rupins ou ils ont tous Photoshop?

On est entre gens sérieux stou

Re: problème pour dessiner une image avec alpha sur un sprit
Publié : lun. 16/mai/2011 21:36
par Cool Dji
Adobe Creativ...

et avec la licence
(du boulot)