Vra

So ek is die omskakeling van'n metafile (EMK om presies te wees) om'n jpeg of gif (maak nie saak so lank as dit versoenbaar is met die blaaier) en wanneer ek dit doen die sukses, al van die deursigtige pixels draai swart.Ek het geen idee hoe om dit te doen in die GDI+ maar hier is die metode wat ek gebruik om die lêer te stoor:

Dim Img As System.Drawing.Imaging.Metafile = New System.Drawing.Imaging.Metafile(stream)
Img.Save(Server.MapPath("/FileName.gif"), System.Drawing.Imaging.ImageFormat.Gif)
Was dit nuttig?

Oplossing

check Bob Powel se webwerf. Hy het 'n metrieke-kak-ton van GDI + dinge. hierdie een is spesiaal vir trans GIF se

Ander wenke

Soos ek dit verstaan die metafile bevat nie inligting vir die agtergrond - dit is net deursigtig.

'n eenvoudige werk rondom is om net die kleur van die agtergrond, die kleur wat jy wil.

E. g.Die kode hieronder skep'n bitmap die dieselfde grootte as die oorspronklike beeld, trek die agtergrond wit en dan trek die metafile beeld op die top van die agtergrond.

        Rectangle imageRect = new Rectangle(0, 0, originalImage.Width, originalImage.Height);
        Bitmap newImage = new Bitmap(originalImage.Width, originalImage.Height);
        Graphics g = Graphics.FromImage(newImage );
        g.FillRectangle(new SolidBrush(Color.White), imageRect);
        g.DrawImage(originalImage, new Point(0, 0));

My begrip is dat jy nodig het om inligting aan die raamwerk verskaf, met betrekking tot die beeld formaat van die bestemming en 'n bron beelde sodat alfa kanale korrek te vertaal.

spesifiek kleur information: bisse per pixel en of daar per-pixel alfa of 'n deursigtige kleur of 'n enkele alfa waarde vir die hele beeld - dinge soos dat.

Maar ek is nie seker hoe dit gedoen word in VB (of in NET glad nie vir die saak) - ek gebruik moedertaal C ++ vir hierdie tipe van operasies ...

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top