BMP als PNG speichern mit System.Drawing.Image
-
ich will eine BMP Datei als PNG speichern:
Image MyImage = Image.FromFile("test.bmp"); MyImage.Save("test.png", System.Drawing.Imaging.ImageFormat.Png);
Es wird zwar die Datei test.png angelegt - jedoch im BMP Format....
-
mein BMP hat folgendes Pixel Format: A8R8G8B8
jetzt habe ich mal mein test.bmp durch ein test.bmp mit dem Pixel Format R8G8B8 ersetzt und jetzt klappt auch das umwandeln - diese zwei Zeilen Code haben mich jetzt nur 2 Stunden aufgehalten... *zzssss*... *arg*
-
PNG müsste aber eigentlich einen Alpha-Kanal beherrschen.
-
ups... hab eine Datei mit der Endung BMP gehabt die in Wirklichkeit eine PNG war - was ich geschieben habe ist unsinnn...
momentan frag ich mich gerade wie aus der BMP Datei eine PNG Datei mit 8 Bit erzeugen kann:
using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System; class Compress { private static ImageCodecInfo GetEncoder(string mimeType) { ImageCodecInfo[] encoders = ImageCodecInfo.GetImageDecoders(); for (int i = 0; i < encoders.Length; ++i) { if (encoders[i].MimeType == mimeType) { return encoders[i]; } } return null; } public static void Main(string[] args) { try { Image MyImage = Image.FromFile("dummy.bmp"); ImageCodecInfo encoder = GetEncoder("image/png"); EncoderParameters parameters = new EncoderParameters(1); parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 8); MyImage.Save("test.png", encoder, parameters); } catch(Exception ex) { System.Console.WriteLine("Error"); } } }
falls jemand schon mal so was programmiert hat oder ne idee hat wie das geht wäre ich froh über einen Hinweis