Есть ли ограничение на размер файла в Paint.NET?

Есть ли ограничение на размер файла в Paint.NET?

Я могу открывать меньшие tif-файлы без проблем, но эти tif-файлы размером 100+ МБ не открываются в Paint.NET. Я не думаю, что это проблема памяти, потому что другие программы могут открывать их без проблем (IrfanView, XNViewPortable). Это ограничение программного обеспечения?

«При открытии файла произошла неизвестная ошибка».

http://dl.dropbox.com/u/1156285/PaintDotCrash_OpenBifTif.avi

Я использую Paint.NET v3.5.5 (финальная версия сборки 3.55.3767.28608) на XP SP3.

Обновлять:

Я думаюДжоэл Кохорнответ на правильном пути. Я преобразовал изображение в черно-белое, в результате чего размер файла составил чуть меньше 5 МБ. Затем попытался открыть и снова получил ошибку.

Используя оригинал, я перепробовал все возможные варианты и в конце концов понял, что если уменьшить количество пикселей с 6000x6000 до 5000x5000, то можно открыть изображение в Paint.NET (даже в 24-битном цвете).

решение1

Похоже, вы получаете исключение OutOfMemory. Исключение .Net OutOfMemory немного вводит в заблуждение. Гораздо чаще это исключение можно увидеть, когда вы исчерпываетеадресное пространство, что немного отличается от физической памяти. Это означает, что такие вещи, как проверка диспетчера задач для определения объема используемой памяти, могут не помочь вам отследить проблему.

Вместо этого проблема, скорее всего, является результатом ошибки в Paint.Net, из-за которой определенные части изображения помещаются средой выполнения .Net в нечто, называемое Large Object Heap. Затем файл загружается таким образом, что этот же набор памяти создается и уничтожается несколько раз, возможно, так, что он становится немного больше каждый раз. Сборщик мусора не очень хорошо освобождает или сжимает адресное пространство из Large Object Heap (даже если физическая память была освобождена или выгружена), и поэтому вы внезапно получаете исключение OutOfMemory.

Решением может стать либо изменение Microsoft поведения среды выполнения .Net по отношению к LOH таким образом, чтобы она могла входить и сжимать LOH в определенных ситуациях (возможно, по запросу или перед выдачей исключения OutOfMemory), либо исправление программой Paint.Net способа загрузки файла таким образом, чтобы он правильно увеличивал существующую структуру данных, вызывающую проблему, а не создавал ее снова и снова.

решение2

То, как такой файл хранится в памяти, влияет на то, сколько памяти он требует. Другие приложения могут быть более эффективными в плане памяти.

Учитывая ваше описание, похоже, что Paint.NET действительно исчерпывает память. Вы можете попробовать открыть диспетчер задач, пытаясь открыть файл, чтобы увидеть, растет ли использование памяти.

решение3

Возможно, он пытается выделить непрерывный блок памяти для чтения файла, попробуйте закрыть как можно больше приложений, а затем повторите попытку открытия файла.

Связанный контент