我需要创建一个位图,其中图像的大小可以超过2GB。我使用:
var myPalette = new BitmapPalette(colors);
var buffer = new byte[image.ImageHeight * image.ImageWidth];
当Array dimensions exceeded supported range
超出预期的2GB时,上述几行将引发异常image.ImageHeight * image.ImageWidth
。但是,有什么解决方案可以使我仍能获得预期大小的位图图像而不会丢失任何数据吗?目前,我正在生成位图,如下所示。
var colors = new List<Color> { Colors.Black, Colors.Yellow, Colors.Blue, Colors.Red, Colors.LimeGreen,Colors.Aqua};
var bitMapImage = BitmapSource.Create(width, height, 96, 96, PixelFormats.Indexed8, myPalette, buffer, width);