создать растровое изображение, где массив имеет более 2 ГБ пикселей - PullRequest
0 голосов
/ 26 ноября 2018

Мне нужно создать растровое изображение, в котором размер изображения может превышать 2 ГБ.Я использую:

var myPalette = new BitmapPalette(colors);
var buffer = new byte[image.ImageHeight * image.ImageWidth];

Вышеуказанные строки выдают исключение Array dimensions exceeded supported range, когда image.ImageHeight * image.ImageWidth пересекает 2 ГБ, как и ожидалось.Но есть ли какое-либо решение, чтобы я мог получить растровое изображение ожидаемого размера без потери данных?В настоящее время я генерирую растровое изображение, как показано ниже.

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);
...