Я пытаюсь написать приложение, которое преобразует 48-бит-пиксельные PNG-файлы в собственный (Bayer) формат.Как просмотреть «необработанные» данные изображения PNG
Код (любезность here) ниже отлично подходит для некоторых форматов PNG-файлов, но когда я пытаюсь использовать bona fide 48-битный PNG, код генерирует исключение - есть ли альтернатива?
static public byte[] BitmapDataFromBitmap(Bitmap objBitmap)
{
MemoryStream ms = new MemoryStream();
objBitmap.Save(ms, ImageFormat.BMP); // GDI+ exception thrown for > 32 bpp
return (ms.GetBuffer());
}
private void Bayer_Click(object sender, EventArgs e)
{
if (this.pictureName != null)
{
Bitmap bmp = new Bitmap(this.pictureName);
byte[] bmp_raw = BitmapDataFromBitmap(bmp);
int bpp = BitConverter.ToInt32(bmp_raw, 28); // 28 - BMP header defn.
MessageBox.Show(string.Format("Bits per pixel = {0}", bpp));
}
}
Может быть, вы хотите сказать нам текст, за исключением? –