Transparant GIF'je in PictureBox

Status
Niet open voor verdere reacties.

geertd

Gebruiker
Lid geworden
16 nov 2008
Berichten
340
Hallo allemaal,

Ik probeer een geanimeerd transparant GIF-bestand in een PictureBox te plaatsen.
De transparantie werkt alleen niet. Hij geeft een witte achtergrond.

Hoe kan ik dit oplossen?

Alvast bedankt,
Geert
 
Ten eerste moet je het gif plaatje tijdens runtime in de picturebox plaatsen, niet tijdens designtime. Dus bijvoorbeeld zo:

Code:
PictureBox1.Image = Image.FromFile(My.Computer.FileSystem.SpecialDirectories.MyPictures & "\123.gif")

Ten tweede moet je weten wat de achtergrond kleur van het gif plaatje is. Ik heb net effe snel een gif animatie gemaakt van 3 frames waarvan elke individuele frame de achtergrondkleur blauw RGB(255,0 0) is, dus geen transparante achtergrond. Vervolgens heb ik deze gif animatie via bovenstaande code in mn picturebox geladen en dat werkte, het gif plaatje werd geanimeerd afgespeeld in de picturebox en was ook transparant. Zorg er wel voor dat de BackColor property van de picturebox op Transparent ingestelt staat anders zie alsnog een solide achtergrondkleur.

Ziehier het gif plaatje dat ik heb gemaakt om mee te testen:
123.gif


Kan je misschien gebruiken om zelf ook mee te testen.

Proof of concept:
transparent_animated_gif_in_picturebox.jpg

Ja, het is geanimeerd, ookal laat een jpg screenshot dat niet ziet. :)
 
Laatst bewerkt:
Bedankt!
Maar kan ik de GIF-jes bij de resources zetten?
 
Ja dat zou ook moeten werken.
Je code moet dan wel aangepast worden.
 
Laatst bewerkt:
Maar hoe stel ik dan in welke kleur transparant moet worden?
 
Dat moet je in Photoshop/Paint Shop Pro doen. Vervolgens moet je bij het opslaan aangeven wat vervolgens transparant moet worden, de transparante achtergrond, of een solide kleur. In dit geval moet je dus kiezen voor het laatste. Ik weet niet precies hoe dat in Photoshop gaat maar in Paint Shop Pro is dat makkelijk te doen.
 
Er zitten nu nog twee fouten in:

Tijdens het weergeven van de GIF-animatie is de achterlaag ook transparant geworden, ik zie dus de form erachter erdoorheen.
En ik heb ook een transparante PNG afbeelding (stilstaand) wanneer ik die over een ander object zet wordt dat object vervangen door de achtergrond van het form.

Zie de bijlagen.
Hoe kan ik dit oplossen?
 

Bijlagen

  • spel2.jpg
    spel2.jpg
    98,8 KB · Weergaven: 98
  • spel.jpg
    spel.jpg
    102,3 KB · Weergaven: 79
Gebruik je de Form.BackGroundImage property voor het weergeven van het level of gebruik je daarvoor een picturebox die de hele beslaat?
 
Ik gebruik de background property
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan