problème pour dessiner une image avec alpha sur un sprite

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

problème pour dessiner une image avec alpha sur un sprite

Message 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
Image

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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message par Chris »

Idem chez moi (4.51)

Une rangée verticale de carrés blanc à gauche, et une horizontale au dessus.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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 ?
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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...
ImageImage
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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... :D :D

A +
Only PureBasic makes it possible
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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ù ? :)
ImageImage
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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
Dernière modification par case le lun. 16/mai/2011 20:42, modifié 1 fois.
ImageImage
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message par Cool Dji »

J'ai aussi utilisé photoshop pour aplatir l'image avec un fond noir...
Only PureBasic makes it possible
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message 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 !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message par Chris »

C'est quoi ce forum de rupins ou ils ont tous Photoshop? :mrgreen:
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: problème pour dessiner une image avec alpha sur un sprit

Message par case »

j'ai pas photoshop j'ai paint shop pro :mrgreen:
ImageImage
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: problème pour dessiner une image avec alpha sur un sprit

Message par djes »

Chris a écrit :C'est quoi ce forum de rupins ou ils ont tous Photoshop? :mrgreen:
On est entre gens sérieux stou :mrgreen:
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: problème pour dessiner une image avec alpha sur un sprit

Message par Cool Dji »

Adobe Creativ... :oops: et avec la licence (du boulot)
Only PureBasic makes it possible
Répondre