Afbeelding GIF transperant in .NET 2005/2008

Status
Niet open voor verdere reacties.

retsech

Gebruiker
Lid geworden
16 mei 2008
Berichten
95
Hallo, ik werk op dit moment met VB 2008 en het is me opgevallen dat sinds na mijn upgrading/converting al mijn .GIF afbeeldingen niet meer transperant zijn. Ik heb op Google allerlei oplossingen gezocht en ik vond niet wat ik nodig had.

Het is me wel gelukt een afbeelding achtergrond kleur transperant te maken, alleen hij toont de kleur van de form. Ik heb iets nodig waarmee je de afbeelding volledig transperant krijgt, dus transpireert hij ook over andere afbeeldingen heen.

Zou iemand me hier uit willen helpen?
Hopelijk is mijn uitleg duidelijk neergezet :)
 
Als je pictureboxen gebruikt, denk ik dat je de BackgroundColor moet veranderen naar Transparent.
 
Als je pictureboxen gebruikt, denk ik dat je de BackgroundColor moet veranderen naar Transparent.

Geprobeerden hij doet helemaal niks :confused:...
Transperante pictureboxen passen hun achtergrond kleur aan op de kleur van de form. Maar ik heb iets nodig waarmee hij ook transpireert over andere afbeeldingen heen.
 
Laatst bewerkt:
Gelezen, alleen snap ik hier iets niet.

Transparantie in .net = overnemen van de kleur van het onderliggend object. Echte transparantie kan enkel bekomen worden door het object te deriven en zelf de implementatie te schrijven in GDI+.

Succes


Zou je wat meer detail willen uitleggen?
 
Laatst bewerkt:
Zoek eens achter : OOP Inheritance en System.Drawing welke een wrapper rond GDI+ is.
 
Bedankt,
Ik had ook nog ontdekt dat in .NET pictureboxen transpireren als je ze een backgroundimage geeft ipv. image. En ze boven een panel of frame neerzet, dus ik bedacht om alle controls in een panel te zetten.

Alleen hier is het probleem, ik wil mijn Panel een background image geven, maar mijn applicatie laad ze van het internet af dus ik gebruikte bij mijn vorige picturebox altijd de .ImageLocation, en er bestaat geen juiste code voor een background image :confused:

Heb je hier misschien een oplosing voor?:)
 
Je maakt een methode aan waarin je via een webclient je data gaat ophalen en deze omzetten in een formaat door middel van een bytearray.

Ik heb wat samplecode bijgevoegd. Vergeet de system.net/system.io namespaces niet te importeren. Doe nu geen domme copy paste maar probeer de code te begrijpen zodat je ze zelf kan implementeren en verbeteren

C#
Code:
private void Form1_Load(object sender, EventArgs e)
        {
            Uri url = new Uri("afbeelding van internet");
            pictureBox1.BackgroundImage = GetImageFromURL(url);
        }
        Image GetImageFromURL(Uri strURL)
        {

            WebClient wc = new WebClient();
            byte[] data = wc.DownloadData(strURL.ToString());
            MemoryStream ms = new MemoryStream(data);
            return new Bitmap(ms);
        }
vb:
Code:
    Private Sub Form1_Load(sender As Object, e As EventArgs)
        Dim url As New Uri("afbeelding van internet")
        pictureBox1.BackgroundImage = GetImageFromURL(url)
    End Sub
    Private Function GetImageFromURL(strURL As Uri) As Image
        Dim wc As New WebClient()
        Dim data As Byte() = wc.DownloadData(strURL.ToString())
        Dim ms As New MemoryStream(data)
        Return New Bitmap(ms)
    End Function

succes
 
Bedankt, hij doet het!:D
Nog 1 klein vraagje... Ik ga dus uit het internet mijn afbeelding downloaden naar mijn picturebox/frame/panel, en ik zou graag willen weten hoe je de background image kan stretchen.

Hij gaat namelijk een achtergrond herhalen als die te klein is voor de frame grootte.
 
Je kan de grootte van je afbeelding aanpassen in de constructor van je Bitmap object.

vb:
Code:
Dim img As Image = New Bitmap(orgineleAfbeelding, New Size(20, 20))

c#
Code:
Image img = new Bitmap(orgineleAfbeelding, new Size(20, 20));
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan