Domanda

Quindi io sono la conversione di un Metafile (EMF per l'esattezza) per un jpeg o gif (non importa il tempo che è compatibile con i browser) e quando lo faccio la conversione, tutti i pixel trasparenti diventano nere. Non ho idea di come fare questo in GDI +, ma qui è il metodo che sto usando per salvare il file:

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

Soluzione

controllare il sito web di Bob Powel. lui ha una metrica-merda-tonnellata di GDI + roba. questo è specifico per trans del GIF

Altri suggerimenti

A quanto mi risulta il metafile non contiene informazioni per il fondo - è semplicemente trasparente.

Un semplice lavoro intorno è semplicemente per colorare lo sfondo il colore che si desidera.

es. Il seguente codice crea una bitmap delle stesse dimensioni dell'immagine originale, disegna lo sfondo bianco e poi disegna l'immagine metafile sulla parte superiore dello sfondo.

        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));

La mia comprensione è che è necessario fornire informazioni al quadro, per quanto riguarda il formato dell'immagine delle immagini origine e di destinazione in modo che i canali alfa da tradurre in modo corretto.

informazioni particolare colore: bit per pixel e se c'è per-pixel alpha o un colore trasparente o un singolo valore alfa per l'intera immagine o no - cose del genere.

Comunque, io non sono sicuro di come questo viene fatto in VB (o in .NET a tutti per quella materia) - Io uso C ++ nativo per questi tipi di operazioni ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top