Pregunta

Así que me estoy convirtiendo un metarchivo (EMF para ser exactos) a un JPEG o GIF (no importa, siempre y cuando sea compatible con los navegadores) y cuando lo haga la conversión, todos los píxeles transparentes vuelve negro. No tengo ni idea de cómo hacer esto en GDI +, pero aquí está el método que uso para guardar el archivo:

Dim Img As System.Drawing.Imaging.Metafile = New System.Drawing.Imaging.Metafile(stream)
Img.Save(Server.MapPath("/FileName.gif"), System.Drawing.Imaging.ImageFormat.Gif)
¿Fue útil?

Solución

echa un vistazo a la página web de Bob Powel. que tiene una métrica-basura-tonelada de GDI + cosas. éste es específicamente para trans del GIF

Otros consejos

A mi entender el metarchivo no contiene información para el fondo - es simplemente transparente.

Una obra sencilla en torno a color es simplemente el fondo el color que desee.

por ejemplo. El código siguiente crea un mapa de bits del mismo tamaño que la imagen original, dibuja el fondo blanco y luego dibuja la imagen de metarchivo en la parte superior del fondo.

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

Mi opinión es que es necesario proporcionar información para el marco, en relación con el formato de imagen de las imágenes de destino y de origen a fin de que los canales alfa a ser traducidos correctamente.

información Específicamente Color: bits por píxel y si hay o no es alfa por píxel o de un color transparente o un único valor alfa para toda la imagen - cosas por el estilo.

Sin embargo, no estoy seguro de cómo se hace esto en VB (o en .NET en absoluto para esa materia) - Yo uso nativo de C ++ para este tipo de operaciones ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top