Bitmap in 16bpp und 8bpp speichern!

01/02/2010 - 16:29 von Marc | Report spam
Hallo,

ich würde gerne die im Programm vorhandenen Bitmaps als JPG in
32/24/16/8bpp speichern.

Folgender Kode erzeugt leider immer 32bpp Bilder, egal was ich für bpp
angebe!
Wo liegt der Fehler?

public void SaveAs(Bitmap bmp, string filename, long bpp)
{
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
Encoder myEncoder1;
EncoderParameters myEncoderParameters;

Bitmap myBitmap = new Bitmap(bmp);

myImageCodecInfo = GetEncoderInfo("image/jpeg");

myEncoderParameters = new EncoderParameters(2);

myEncoder = System.Drawing.Imaging.Encoder.Quality;
myEncoderParameters.Param[0] = new
System.Drawing.Imaging.EncoderParameter(myEncoder, 70);

myEncoder1 = System.Drawing.Imaging.Encoder.ColorDepth;
myEncoderParameters.Param[1] = new
System.Drawing.Imaging.EncoderParameter(myEncoder1, bpp);

myBitmap.Save(filename, myImageCodecInfo, myEncoderParameters);
}

Seit neuestem bekomme ich sogar beim myBitmap.Save(...) eine Exception
(ungültige Parameter)!
Hatte ich bisher nicht, aber trotzdem immer 32bpp Ergebisse.

Gruß
Marc
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
01/02/2010 - 21:24 | Warnen spam
Am 01.02.2010 16:29, schrieb Marc:
ich würde gerne die im Programm vorhandenen Bitmaps als JPG in
32/24/16/8bpp speichern.



Bei JPEG ist nur 8 Bit pro Pixel verbreitet (also 24 Bits pro Pixel für
RGB). Vermutlich unterstützt der Codierer für JPEG die anderen Formate
gar nicht, da sie in "freier Wildbahn" praktisch nicht vorkommen.

Die verschiedenen Farbtiefen sind (wiederum nicht alle) eher bei
Dateiformaten die PNG, GIF und BMP üblich.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen