Gdi + DrawImage возвращает нехватку памяти (C ++)

У меня проблема, когда я пытаюсь нарисовать растровое изображение в другом с помощью функции «DrawImage» GDI +.
Моя проблема возникает только тогда, когда размеры растровых изображений довольно велики (в приведенном ниже коде я заменил переменные размера фактическим значением типичного нерабочего случая).

Проблема в : Результат DrawImage — «Недостаточно памяти» (и поэтому ничего не отображается).

Вот код (упрощенный):

Bitmap* pclBitmapDest = new Bitmap(12821, 2400); // Creation and internal status is OK
Graphics* pclGraphicsDest = Graphics::FromImage(pclBitmapDest); // Creation and internal status is OK

Bitmap* pclBitmapSource = new Bitmap(12620, 2400); // Creation and internal status is OK
Graphics* pclGraphicsSource = Graphics::FromImage(pclBitmapSource); // Creation and internal status is OK

// ... Work on pclGraphicsSource to add some shapes into... Everything is OK.

ImageAttributes l_clImageAttributes;
clImageAttributes.SetColorKey(Color::White, Color::White, ColorAdjustTypeBitmap);
Rect stRectangleSource(200, 0, 12620, 2400);

// Add the "Source" bitmap to the "Dest" bitmap
pclGraphicsDest->DrawImage(pclBitmapSource, stRectangleSource, 0, 0, pclBitmapSource->GetWidth(), pclBitmapSource->GetHeight(), UnitPixel, &clImageAttributes); // lastResult=OutOfMemory (3)

Я знаю, что эти изображения довольно большие, но в этом случае моя программа «только» использует около 300Мо ОЗУ, что не так уж много (у меня 8Го …). И я особенно не понимаю, почему мне нужно больше памяти на этом этапе, поскольку оба растровых изображения уже созданы, и я просто «копирую» данные одного в другой (по крайней мере, это то, что я хочу сделать!).

Я работаю с C ++ MFC под Visual Studio 2013, и мой компьютер 64-битный с 8Go оперативной памяти (Windows 10).

Большое спасибо за ответ,
Ура,
Алекс.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector