StretchDIBits не удалось, иногда он ничего не рисует,
-
22-07-2019 - |
Вопрос
я использую gdi c ++, Функция StretchDIBits иногда не срабатывает, если я рисую большие изображения, например 7000 * 5000. Ничего не рисует. GetLastError () говорит, что недостаточно системных ресурсов. Может кто-нибудь объяснить, почему StretchDIBits нужен ресурс даже DC готов успешно.
Решение
Может случиться так, что StretchDIBits расширяет исходное изображение во временное растровое изображение того же размера, что и целевое растровое изображение, а затем копирует временное изображение в конечное место в качестве последнего шага. Таким образом, даже если у вас достаточно памяти для создания целевого растрового изображения (140 МБ) перед вызовом StretchDIBits, ваша система не имеет дополнительных 140 МБ для выделения временного растрового изображения.