Из Отражателя мы видим:
if (validateImageData)
{
num = SafeNativeMethods.Gdip.GdipImageForceValidation(new HandleRef(null, zero));
if (num != 0)
{
SafeNativeMethods.Gdip.GdipDisposeImage(new HandleRef(null, zero));
throw SafeNativeMethods.Gdip.StatusException(num);
}
}
Итак, мы видим, что GdipImageForceValidation вызывается (напомним, System.Drawing - просто оболочка над GDI +). Документация для этой функции не очень хорошая:
Эта функция вызывает проверку изображения.
Не очень полезно. Тем не менее, пункт сделан - файл изображения опрошен, чтобы гарантировать, что это безопасно загрузить. Это может привести к загрузке всего изображения в память.
Если вы принимаете входные данные от пользователей, я бы определенно установил для этого флага значение true - вы никогда не знаете, какие типы файлов (искаженные или нет) будут загружать пользователи. Береженого Бог бережет. Вот почему по умолчанию true
.
Обратите внимание также, что GDI + не рекомендуется для серверных сред. Вам лучше использовать System.Windows.Media.Imaging
.