Comment créer une image totalement transparente ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Comment créer une image totalement transparente ?

Message par Lord Nelson »

Salut, comment je peux créer une image totalement transparente ?
J'ai essayé ça mais l'image est noir, elle devrais être transparente :?
C'est à dire que une fois l'image créer et sauvé sur le disque, quand je met le curseur dessus, l'image devrais être transparente.
Mais là non pourquoi ? :?

Code : Tout sélectionner

CreateImage(1, 100, 100, 32, #PB_Image_Transparent)
UsePNGImageEncoder()
SaveImage(1, "Test.png", #PB_ImagePlugin_PNG, 0, 32)
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: Comment créer une image totalement transparente ?

Message par majikeyric »

Elle est pourtant bien transparente quand je l'ouvre en double-cliquant dessus ou avec photoshop par exemple.
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Re: Comment créer une image totalement transparente ?

Message par Lord Nelson »

C'est bon j'ai trouvé :)

Code : Tout sélectionner

CreateImage(1, 100, 100, 32, #PB_Image_Transparent)

StartDrawing(ImageOutput(1))
DrawingMode(#PB_2DDrawing_AlphaBlend)

For Y = 0 To 100 - 1
  
  For X = 0 To 100 - 1
    
    Couleur = RGBA(255, 255, 255, 1)
    Plot(X, Y, Couleur)
    
  Next
  
Next
StopDrawing()

UsePNGImageEncoder()
SaveImage(1, "Test.png", #PB_ImagePlugin_PNG, 0, 32)
Si tu met transparence à 0, tu verras que du noir, 255, que du blanc.
Faut mettre 1 en transparence pour avoir une transparence totale.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment créer une image totalement transparente ?

Message par nico »

Non, ce n'est pas bon du tout, le premier code avais un sens mais celui là n'en a aucun.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Comment créer une image totalement transparente ?

Message par falsam »

Lord Nelson a écrit :SaveImage(1, "Test.png", #PB_ImagePlugin_PNG, 0, 32)
Le 4eme paramétre (ici 0) représente la qualité de l'image de 0 à 10. 8 est un bon compromis.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Comment créer une image totalement transparente ?

Message par falsam »

Lord Nelson a écrit :Si tu met transparence à 0, tu verras que du noir, 255, que du blanc.
Faut mettre 1 en transparence pour avoir une transparence totale.
Le 4eme paramétre de la fonction RGBA() représente le canal alpha qui détermine la transparence de l'image. Ce canal varie de 0 à 255 (Transparent à opaque). Si en mettant 0 ton image est noir ça me parait être un comportement étrange.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Comment créer une image totalement transparente ?

Message par Mesa »

et ça, ça fonctionne ?

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	
	;SetWindowColor(0, RGB(255, 165, 0)) 

  CreateImage(0, 200,200,32,#PB_Image_Transparent )  
  
	StartDrawing(ImageOutput(0))
	
	DrawingMode(#PB_2DDrawing_AlphaBlend) ; A ne pas oublier ...
		
	Box(0,0,200,200,RGBA(0,0,0,0))
	
	
	StopDrawing()
	
	ImageGadget(0,  300, 200, 200, 200, ImageID(0))   
EndIf
UsePNGImageEncoder() 
SaveImage(0, "c:\Test.png", #PB_ImagePlugin_PNG, 0, 32)
Delay(1000)
RunProgram("c:\Test.png")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
M.
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Re: Comment créer une image totalement transparente ?

Message par Lord Nelson »

Heuuuu, ça vient à croire de mon explorateur qui affiche la vignette en noir mais en vrais elle est transparente car en aperçus elle est bien transparente !
Oui ça fonctionne bien.
Merci :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment créer une image totalement transparente ?

Message par nico »

Mais ça fonctionne depuis le début.
Si en mettant 0 ton image est noir ça me parait être un comportement étrange
Non par défaut ton image est noir, c'est normal.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Comment créer une image totalement transparente ?

Message par falsam »

nico a écrit :Non par défaut ton image est noir, c'est normal.
Avec ce code, je crée bien une image avec un fond transparent en utilisant un canal alpha à 0. Puis je dessine trois cercles. L'image sera sauvegardée sur le bureau.

Code : Tout sélectionner

CreateImage(0, 512, 512, 32)

StartDrawing(ImageOutput(0))

;Fond transparent de l'image
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, 512, 512, RGBA(0, 0, 0, 0))

;Un grand classique
DrawingMode(#PB_2DDrawing_AlphaBlend)
Circle(256, 200, 100, RGBA(255, 0, 0, 128))
Circle(200, 280, 100, RGBA(0, 255, 0, 128))
Circle(300, 280, 100, RGBA(0, 0, 255, 128))
StopDrawing()

;Sauvegarde de l'image sur le bureau
UsePNGImageEncoder()
SaveImage(0, GetHomeDirectory()+"Desktop\"+"Test.png", #PB_ImagePlugin_PNG, 8, 32)
Tu constateras que le fond est bien transparent et non noir.

Je pense qu'il y a un ̶b̶u̶g̶  oops non on va plutôt dire un comportement bizarre.

Si je ne dessine pas les cercles alors effectivement le fond est noir.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Re: Comment créer une image totalement transparente ?

Message par Lord Nelson »

Hum étrange 8O
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment créer une image totalement transparente ?

Message par nico »

Tu constateras que le fond est bien transparent et non noir.

Je pense qu'il y a un ̶b̶u̶g̶ oops non on va plutôt dire un comportement bizarre.

Si je ne dessine pas les cercles alors effectivement le fond est noir.
Je me suis mal exprimé, ce que je voulais dire c'est que même avec une couche alpha à 0, il y a toujours la couche RGB existante et que celle-ci étant rempli avec des 0, cela donne évidemment du noir. Donc si tu charges l'image et que tu la dessines avec la couche alpha, elle sera transparente mais si tu la dessines sans prendre en compte la couche alpha, elle sera noire.

Donc oui l'image est transparente et si tu ne dessines pas les cercles et bien oui, l'image est toujours transparente et non noir.

Mais je tiens à te rassurer si je l'ouvre avec Paint elle est blanche, avec l'aperçu de window elle est noir, mais dans tous les cas elle est bien transparente.
Répondre