Lendo / preservando um bitmap PNG PixelFormat.Format48bppRgb no .NET?

Consegui criar um arquivo .PNG Format48bppRgb (a partir de alguns dados HDR internos) usando o seguinte código C #:

Bitmap bmp16 = new Bitmap(_viewer.Width, _viewer.Height, System.Drawing.Imaging.PixelFormat.Format48bppRgb);
System.Drawing.Imaging.BitmapData data16 = bmp16.LockBits(_viewer.ClientRectangle, System.Drawing.Imaging.ImageLockMode.WriteOnly, bmp16.PixelFormat);
unsafe {  (populates bmp16) }
bmp16.Save( "C:/temp/48bpp.png", System.Drawing.Imaging.ImageFormat.Png );

@ImageMagik (e outros aplicativos) verifica se realmente é uma imagem de 16 bpp:

C:\temp>identify 48bpp.png
48bpp.png PNG 1022x1125 1022x1125+0+0 DirectClass 16-bit 900.963kb

Fiquei desapontado, no entanto, ao descobrir que, ao ler o PNG novamente, ele foi convertido em Format32bppRgb, ao usar:

Bitmap bmp = new Bitmap( "c:/temp/48bpp.png", false );
String info = String.Format("PixelFormat: {0}", bmp.PixelFormat );
...

Dado que o codec PNG pode escrever um Format48bppRgb, existe alguma maneira de usar o .NET para lê-lo sem a conversão? Não me importo se isso for feito para uma chamada DrawImage, mas eu gostaria de acessar os dados originais descompactados para algum trabalho de processamento de histograma / imagem.

questionAnswers(2)

yourAnswerToTheQuestion