Создание Dib только указанием размера с помощью GDI + и DotNet - PullRequest
2 голосов
/ 27 января 2010

Я только недавно обнаружил разницу между разными конструкторами в GDI +. Переход:

var bmp = new Bitmap(width, height, pixelFormat);

создает DDB (зависимое от устройства растровое изображение), тогда как:

var bmp = new Bitmap(someFile);

создает DIB (независимое от устройства растровое изображение). Это на самом деле обычно не важно, за исключением случаев обработки очень больших изображений (когда DDB исчерпывает память и исчерпывает память разных размеров в зависимости от машины и ее видеопамяти). Мне нужно создать DIB, а не DDB, но указать высоту, ширину и формат пикселей. Кто-нибудь знает, как это сделать в DotNet. Также есть руководство по тому, какой тип растрового изображения (DIB или DDB) создается каким конструктором растрового изображения?

1 Ответ

3 голосов
/ 10 июня 2010

Похоже, лучший способ сделать это - выделить память самостоятельно, а затем создать растровое изображение с помощью:

var bmp = new Bitmap(width, height, stride, format, scan0)

Таким образом, вы можете создавать огромные растровые изображения без ошибки нехватки памяти.

...