Frage

So ich eine Metafile bin Umwandlung (EMF um genau zu sein) zu einem JPEG- oder GIF (spielt keine Rolle, solange es mit Browsern kompatibel ist) und wenn ich die Konvertierung zu tun, all die transparenten Pixel schwarz. Ich habe keine Ahnung, wie das in GDI + zu tun, aber hier ist die Methode, die ich die Datei speichern bin mit:

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

Lösung

Besuche Bob Powel auf der Website. er hat eine Metrik-Mist-Tonne von GDI + Zeug. dieses speziell für die trans GIF ist

Andere Tipps

Wie ich es verstehe das Metafile enthält keine Informationen für den Hintergrund - es einfach transparent ist.

Eine einfache Arbeit um ist, einfach Hintergrund die Farbe Farbe, die Sie wollen.

z. Der folgende Code erstellt eine Bitmap die gleiche Größe wie das Originalbild, zieht den Hintergrund weiß und dann zieht das Metafile Bild auf dem Hintergrund.

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

Mein Verständnis ist, dass Sie Informationen zu Rahmen zur Verfügung stellen müssen, in Bezug auf das Bildformat der Ziel- und Quellbilder, um für Alpha-Kanäle korrekt übersetzt werden.

Im einzelnen Farbinformationen: Bits pro Pixel oder nicht und ob es pro-Pixel-alpha oder eine transparente Farbe oder ein einzelner Alpha-Wert für das gesamte Bild - solche Sachen.

Aber ich bin nicht sicher, wie dies in VB getan wird (oder überhaupt in .NET für diese Angelegenheit) - Ich verwende native C ++ für diese Art von Operationen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top