[5.40b1]VectorCanvas et transparence

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: VectorCanvas et transparence

Message par Ollivier »

Hey Falsam! Si je pouvais, je le ferais volontiers...

D'après Mesa, il faut nicher ses commandes dans un start/stop de gestion de couches. Kek ten pense?
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: VectorCanvas et transparence

Message par blendman »

@Mesa : dans la doc, il est noté ( pour DrawVectorImage()) ) :
Cette transparence est appliquée en plus de tous les pixels transparents déjà présents dans l'image source.
Donc, si on a une image avec des pixels transparents , ça ne fonctionne que si on load l'image sans la modifier. Mais si on la créé avec CreateImage() ou qu'on la modifie avec LoadImage() et startdrawing()/stopdrawing() ça ne marche plus.
Si ça marche sans la modifier, c'est qu'il doit y avoir un bug lorsqu'on la modifie ou qu'on la créé (avec createImage()), non ? Car ça devrait marcher dans tous les cas de figures.
Ok :
- loadimage() seul : voir edit -> pas ok en fait...
Pas Ok :
- loadimage() + modification (avec un startdrawing()/stopdrawing())
- CreateImage() avec transparence
- CreateImage() avec transparence + modification (avec un startdrawing()/stopdrawing())

EDIT : ah ben, non, ça ne marche même pas avec un simple LoadImage() en png, il doit donc y avoir un bug ou alors il y a une erreur dans la documentation. Mais ça m'étonnerait quand même qu'on ne puisse pas charger un simple png avec transparence sur un canvasvector ^^.
Dernière modification par blendman le mar. 01/sept./2015 12:22, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: VectorCanvas et transparence

Message par falsam »

Ollivier a écrit :D'après Mesa, il faut nicher ses commandes dans un start/stop de gestion de couches. Kek ten pense?
Kek j'en pense ? tu en a de bien bonnes toi. je vais devoir fouiner sur le net pour savoir quelles couches je vais devoir choisir et demander à mère denis (Pas denis de ce forum mais bien mére denis) avec quelle machine je vais nettoyer mes couches dans un souci de protéger la planète bien que je sois conscient que si je lave moi même les couches, je risque de planter l'économie des entreprises qui fabriquent ces couches. Je ne sais pas si tu vois bien le dilemme !

Faudrait qu'il arrête le p'tit pékét le père Mesa. Il est a cotés de la plaque dans sa réponse. Un peu comme moi parfois.
blendman a écrit :c'est qu'il doit y avoir un bug lorsqu'on la modifie ou qu'on la créé (avec createImage()), non ?
Si tu as lu ce que j'ai dit, tu auras compris que je suis d'accord avec toi. Ca semble être un bug.
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
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: VectorCanvas et transparence

Message par blendman »

sur ce code-ci, l'image ne devrait-elle pas être transparente ?

Code : Tout sélectionner

w = 380
h = 200
UsePNGImageDecoder()

If OpenWindow(0, 0, 0, w, h, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 0, 0, w, h)
 
  ;IMAGE MATRICIELLE
  LoadImage(0, #PB_Compiler_Home + "examples/3D/Data/Textures/grass2.png")
    
  
  ;IMAGES VECTORIELLES
  If StartVectorDrawing(CanvasVectorOutput(0))
    
    AddPathBox(0,0,w,h)
    VectorSourceColor(RGBA(230,230,230,255))
    FillPath()  
    
    DrawVectorImage(ImageID(0))
    
   
    StopVectorDrawing()
   
  EndIf
 
  Repeat
    Event = WaitWindowEvent()
   
  Until event = #PB_Event_CloseWindow
 
EndIf
Si oui, c'est alors DrawVectorImage() qui a un bug avec la transparence et si non, et bien, il faut corriger la documentation en expliquant qu'on ne peut pas charger d'image transparente, ce qui serait quand même très balot :mrgreen:

@Falsam : oui, j'avais compris qu'on pense qu'il y a un bug, mais comme c'est une lib toute nouvelle, pitet c'est nous qui sommes totalement à coté de la plaque :mrgreen: (bon, même si j'ai quand même un doute ^^).
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: VectorCanvas et transparence

Message par falsam »

En tout cas moi je suis à cotés de la plaque .....

Ta démonstration montre que l'image grass2.png ne s'affiche pas avec un fond transparent !

La fonction DrawVectorImage ne gère pas la couche alpha des images PNG.

Je passe la main ..... pour le moment.
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
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: VectorCanvas et transparence

Message par blendman »

C'est un bug, je l'ai posté sur le forum anglais, car la doc indique :
De plus, cette bibliothèque (VectorDrawing) prend en charge la transparence alpha dans toutes ses opérations.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: VectorCanvas et transparence

Message par Ollivier »

@Falsam

T'rigoles tow: va pas raver que l'mesow y lâche la péquette avant quy soit six godasses sous Teo!

Pô bzoin d'net pour gérer d'la couche! Iffik au bar a dit l'aut' coup en s'mettant 5 fri 5 légum' de dijo dans l'goze, que t'en as que 256 des couches!

Il a précisé "Dow pissance huit!" 'vant d'se vautrer dans les géraniums d'la vieille Aurore De Lanatuhr.

Plus moy'après d'lui sortir l'moindre verre du nez!

Bon... De 0 à 255 les couches... C'est p'têt ça qu'il faut préciser avec le nouveau BeginVectorLayer(couche)
EndVectorLayer() pour éviter de rétamer? Qu'est-ce que disent les shakespearistes?

(Edité)

@Blendman

Vu sur ton sujet EN. Donc bug après test de Demivec. Autant ajouter un lien dans la section Bug Report, si tu peux et, si tu ne l'as pas déjà fait...
Répondre