probleme d'affichage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

probleme d'affichage

Message par chikun »

Voilà, je voudrais afficher autre chose que des rond des carrés des traits...

j'ai cherché et effectuer un ti code en mettant l'image ci-dessous dans le même dossier que le code

mais: le prog passe en page blanche apres 4/5 secondes , de plus l'effacement de l'image (dont le fond PAS totalement noir (?)) laisse à désirer

kkun peut m'aider?


Image
[/img]

Code : Tout sélectionner



ecranx = GetSystemMetrics_(#SM_CXSCREEN) 
ecrany = GetSystemMetrics_(#SM_CYSCREEN) 
InitSprite()
InitKeyboard()
InitMouse()

OpenWindow(0,0,0,ecranx,ecrany,"testimage",#PB_Window_ScreenCentered|#PB_Window_SystemMenu  )
OpenWindowedScreen(WindowID(0),0,0,ecranx,ecrany,0,0,0)

Enumeration
#fond 
#obj1
EndEnumeration

UsePNGImageDecoder()


CreateSprite(#fond,EcranX,EcranY)
StartDrawing(SpriteOutput(#fond))
  Box(0,0,EcranX,EcranY,RGB(0,0,0))
StopDrawing()


LoadSprite(#obj1,"flame.png")

Repeat
ExamineMouse()

DisplayTransparentSprite(#obj1,MouseX(),MouseY())
FlipBuffers()
Delay(1)
DisplaySprite(#fond,ecranx,ecrany)

Until MouseButton(2)

chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

mince, g mis un "END" en fin de prog et le blem est résolu

sauf pour les deux barre blanche de mon image :cry:



je réédite car ça plante toujours! :x
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Je n'ai pas compris pourquoi tu as mis un sprite de fond, laisser le screen n'aurait pas suffit ?

Bon sinon j'ai réussi à régler ton problème. J'ai rajouter un ClearScreen() pour remettre l'ecran noi. Pour les bandes blanches de l'image, j'ai d'abord chargé l'image en mémoire avant de la dessiner avec DrawAlphaImage() sur le sprite.

Code : Tout sélectionner

ecranx = GetSystemMetrics_(#SM_CXSCREEN)
ecrany = GetSystemMetrics_(#SM_CYSCREEN)
InitSprite()
InitKeyboard()
InitMouse()

OpenWindow(0,0,0,ecranx,ecrany,"testimage",#PB_Window_ScreenCentered|#PB_Window_SystemMenu  )
OpenWindowedScreen(WindowID(0),0,0,ecranx,ecrany,0,0,0)

Enumeration
#fond
#obj1
EndEnumeration

UsePNGImageDecoder()


; CreateSprite(#fond,EcranX,EcranY)
; StartDrawing(SpriteOutput(#fond))
;   Box(0,0,EcranX,EcranY,RGB(0,0,0))
; StopDrawing()


If LoadImage(0, "flame.png")
  CreateSprite(#obj1, ImageWidth(0), ImageHeight(0))
  StartDrawing(SpriteOutput(#obj1))
  DrawAlphaImage(ImageID(0), 0, 0)
  StopDrawing()


  Repeat
  ExamineMouse()
  ClearScreen(0)
  DisplayTransparentSprite(#obj1,MouseX(),MouseY())
  FlipBuffers()
  Delay(1)
  
  ;DisplaySprite(#fond,ecranx,ecrany)
  
  Until MouseButton(2)
EndIf
End
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

lepiaf31 :

:D cool , je te remercie , tu m'apprends ça en fait:

CreateSprite(#obj1, ImageWidth(0), ImageHeight(0))
StartDrawing(SpriteOutput(#obj1))
DrawAlphaImage(ImageID(0), 0, 0)
StopDrawing()

mais ça change pas que la fenêtre devient blanc au bout de 5secondes avec le sablier actif et je dois cliquer sur la croix pour kil me dise "terminer maintenant"...

En tout cas je suis content, j'avance un peu plus grâce à toi :wink:
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Ha ben c'est bizarre, chez moi je n'ai plus la fenetre qui devient blanche. Tu as toujours la fenetre blanche avec mon code (sans enlever les ";") ?
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

lepiaf31:

Ecoute, je suis pas tres calé. mais g pas modifié le prg que tu m'a remis et g tj le meme probleme.

g passé ccleanner, nettoyé la base de registre (en gros sans savoir kom bq)
g redemarré le pc et idem , c pareil :roll:

alors, g la version 4.20 demo sous xp

ca deconne à 8econdes exactement meme si je ne touche à rien
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

:twisted: Attend j'allucine, g fait "msconfig" et trouvé 2 saloperies dans "demarrage"

c bon maintenant ça marche

par contre tu as fait quoi exactement avec mon image "flame"?
car quand j'en met un autre "png" de taille sensiblement superieur, rien ne s'affiche !? :idea:
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Et ben j'ai rien fait de particulier. Es-tu sûr d'avoir bien mis le bon chemin d'acces à l'image dans ton code ? Sinon montre moi l'image que tu essayes de mettre et je te dirai ce que ca fait chez moi.
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Alors j'ai fais un test et moi aussi il y a un probleme avec des images plus grandes. J'ai changé DrawAlphaImage() en DrawImage() et cela a marché (mais évidemment la transparence n'est plus prise en compte). C'est donc la fonction DrawAlphaImage() qui semble poser un problème avec les images de plus grande taille.

Peut-etre que c'est parce que l'image que tu utilise n'est pas une image 32 bits.
Dernière modification par lepiaf31 le dim. 21/juin/2009 16:15, modifié 1 fois.
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

g remarqué que "flame" à une profondeur de 32bits et tous les autres 24
c pour ça ke g pas d'affichage?
(?)

oups je réédite , j'avais pas vu que t'avais repondu, je retourne voir ça je te renvoi l'autre image atta


[/img]
Dernière modification par chikun le dim. 21/juin/2009 16:18, modifié 1 fois.
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Oui je pense que c'est cela moi j'avais utilisé une image 48 bits et ca n'avait pas marché non plus. Il faut absolument une image 32 bits.
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

non! meme en 32 ça marche pas , enfin voilà une autre en 32 bits de prof;

Image
[/img]
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Non celle-ci elle est en 24 bits (pour le savoir tu fais clic droit > propriétés > onglet résumé > avancé > et tu regarde la ligne Profondeur de la couleur)

EDIT: test avec cette image et ca marche: http://25.img.v4.skyrock.net/251/freydj ... mall_1.png
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

chikun a écrit : mais ça change pas que la fenêtre devient blanc au bout de 5secondes avec le sablier actif et je dois cliquer sur la croix pour kil me dise "terminer maintenant"...
pas la peine d'essayer ton code !! :lol:

le symptome que tu decris me suffit !! :)

t'aurai pas oublié de gerer les events ?? ........... par hasard ?? :lol:


rajoute

Code : Tout sélectionner

 WaitWindowEvent()
quelques part !!
dans la boucle principal
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

ah te voilà toi ! :D t'as pas fini le champ. kan meme :roll:

bon , suis bien tout ce qui vient d'être dit , j'avais vraiment une merde au menu démarrage de mon pc, g plus cette page blanche.

le blem c que en utilisant une image "png" profondeur 24bit ça marche, voir le code remodelé par lepiaf31 plus haut , mais si je met une image de 32 , il y a rien.

par contre ça marche bien, mais il y a tous les bords blancs (de l'image) kan on utilise :
DisplayTransparentSprite
Répondre