У тебя проблема с яйцом и курицей. Чтобы сделать какое-то предположение, вам нужно знать размер изображения. Вы не знаете размер, пока не загрузите его.
В любом случае это не очень полезно. Получите ли вы OOM, действительно зависит от того, насколько фрагментирована адресная область виртуальной памяти. И это не легко найти в Windows. Требуется API-функция HeapWalk (), и это нездоровая функция. Проверьте мелкий шрифт в статье библиотеки MSDN для этого. Особенно плохо в управляемой программе, не используйте ее.
Обратите внимание, что это исключение OOM не совпадает с OOM, которое вы получаете, когда используете слишком много управляемой памяти. На самом деле это исключение GDI +, и вы можете легко восстановить его. Просто перехватите исключение и отобразите сообщение «Извините, я не смог этого сделать».
Если вы как-то знаете размер фронта, тогда вы вполне можете с уверенностью предположить, что ширина * высота * 4> 550 МБ не будет работать в 32-битной программе. Этот лимит быстро снижается после некоторого запуска.