fonctionnement de displayAlphaSprite()
fonctionnement de displayAlphaSprite()
Bonjour, c'est encore moi.
Je voudrais utiliser la fonction displayAlphaSprite(), mais je ne trouve aucun exemple sur le net.
J'ai sauvegardé mon image en bmp 256 niveaux de gris (8 bits) comme demandé (avec Photofiltre free).
Je charge l'image avec
LoadSprite(#PB_Any,"mask_256_ng.bmp",#PB_Sprite_Alpha)
Mais déjà la fonction loadSprite me renvoie 0, ce qui ne semble pas normal.
Si je charge sans option, loadSprite((#PB_Any,"mask_256_ng.bmp") fonctionne, mais impossible d'utiliser displayAlphaSprite() alors...
Quelqu'un aurait-il une explication ?
Faut-il utiliser un autre logiciel que Photofiltre (j'ai essayé avec Paint ou The Gimp mais sans résultat) ?
Est-ce mon masque qui ne convient pas ?
Le zip est là :
https://rapidshare.com/files/1237506566 ... Sprite.zip
Merci pour votre aide.
Je voudrais utiliser la fonction displayAlphaSprite(), mais je ne trouve aucun exemple sur le net.
J'ai sauvegardé mon image en bmp 256 niveaux de gris (8 bits) comme demandé (avec Photofiltre free).
Je charge l'image avec
LoadSprite(#PB_Any,"mask_256_ng.bmp",#PB_Sprite_Alpha)
Mais déjà la fonction loadSprite me renvoie 0, ce qui ne semble pas normal.
Si je charge sans option, loadSprite((#PB_Any,"mask_256_ng.bmp") fonctionne, mais impossible d'utiliser displayAlphaSprite() alors...
Quelqu'un aurait-il une explication ?
Faut-il utiliser un autre logiciel que Photofiltre (j'ai essayé avec Paint ou The Gimp mais sans résultat) ?
Est-ce mon masque qui ne convient pas ?
Le zip est là :
https://rapidshare.com/files/1237506566 ... Sprite.zip
Merci pour votre aide.
Re: fonctionnement de displayAlphaSprite()
t'es sur que le BMP gere l'alha ??Le sprite est créé avec le support de l'alpha-channel, le format d'image doit le gérer
essaye avec un PNG !
(n'oublie pas d'ajouter "UsePNGImageDecoder()" dans ton code )

Re: fonctionnement de displayAlphaSprite()
J'ai cru comprendre que displayAlphaSprite() n'a aucun rapport avec la couche alpha d'une image, mais "simule" une couche alpha avec les niveaux de gris d'une image bmp 8 bits. Ca permettrait à mon sens d'afficher un masque coloré (en relation avec ChangeAlphaIntensity() ) avec différents niveaux de transparence (c'est comme ça que je le vois).
Pour les images png avec couche alpha, il faut apparemment utiliser les sprite3D. Mais je ne cherche pas ce genre de fonctionnalité pour mon appli.
Quelqu'un aurait-il un tuto utilisant displayAlphaSprite() ?
Merci.
Pour les images png avec couche alpha, il faut apparemment utiliser les sprite3D. Mais je ne cherche pas ce genre de fonctionnalité pour mon appli.
Quelqu'un aurait-il un tuto utilisant displayAlphaSprite() ?
Merci.
Re: fonctionnement de displayAlphaSprite()
D'ailleurs le manuel spécifie bien :
Peut être que Photofiltre ne fournit pas le bon format...#PB_Sprite_Alpha : Le sprite est au format 8 bits (256 couleurs) en niveau de gris utilisé par DisplayAlphaSprite(), DisplayShadowSprite() ou DisplaySolidSprite()
Re: fonctionnement de displayAlphaSprite()
Une image BMP peut être enregistrée en mode 8bits (couleur indexée) et la tienne a l'air valide de ce coté.
Le coté transparence Alpha du Png n'entre pas en jeu ici.
j'ai essayé de compléter un peu mais sans succès. Les amateurs de 2D vont surement te répondre rapidement.
Le coté transparence Alpha du Png n'entre pas en jeu ici.
Code : Tout sélectionner
InitSprite()
OpenWindow(0,0,0,800,600,"displayAlphaSprite")
OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)
spriteO =LoadSprite(1,"mask_256_ng.bmp")
spriteA = LoadSprite(2,"mask_256_ng.bmp",#PB_Sprite_Alpha)
;- test/
If spriteO = 0 Or spriteA = 0
Debug spriteO : Debug spriteA
EndIf
;- /test
Repeat
FlipBuffers()
ClearScreen(RGB(0,128,0))
DisplaySprite(1,100,100)
DisplayAlphaSprite(2,100,100)
Until WindowEvent() = #PB_Event_CloseWindow
FreeSprite(1)
FreeSprite(2)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: fonctionnement de displayAlphaSprite()
Tu as un exemple dans le répertoire PureBasic\Examples\Sources\Sprite_SpecialFX.PB
J'ai testé mais je ne voyais rien de spécial. Finalement en sélectionnant le sous système Directx7 dans les options du compilateur, j'ai vu fonctionner la commande DisplayAlphaSprite()
J'ai testé mais je ne voyais rien de spécial. Finalement en sélectionnant le sous système Directx7 dans les options du compilateur, j'ai vu fonctionner la commande DisplayAlphaSprite()
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: fonctionnement de displayAlphaSprite()
Merci pour l'exemple !
Par contre, je ne vois pas où modifier la version de DirectX dans les options de compilation...
Je dois être miraud
Par contre, je ne vois pas où modifier la version de DirectX dans les options de compilation...
Je dois être miraud

Re: fonctionnement de displayAlphaSprite()
Depuis le menu 'compilateur' tu vas dans 'options du compilateur...' et tu verras la fenêtre ci-dessous, et ensuite dans Bibliothèque sous-système tu tapes le texte Directx7 , tu peux aussi choisir opengl selon ce que tu veux faire.


http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: fonctionnement de displayAlphaSprite()
Merci.
Effectivement, sous DirectX7 on voit des sprites. Par contre c'est drôlement lent !
Pour l'exemple que j'ai fourni plus haut, il y a des effets désastreux de décalage sur mon AlphaSprite, mais il faudrait que je compare mon image avec celle de l'exemple PB.
Effectivement, sous DirectX7 on voit des sprites. Par contre c'est drôlement lent !
Pour l'exemple que j'ai fourni plus haut, il y a des effets désastreux de décalage sur mon AlphaSprite, mais il faudrait que je compare mon image avec celle de l'exemple PB.