Có giới hạn kích thước tệp trong Paint.NET không


7

Tôi có thể mở các tif nhỏ hơn không có vấn đề gì, nhưng các tif này ở mức 100 + MB không thể mở được trong Paint.NET. Tôi không nghĩ đó là vấn đề bộ nhớ, bởi vì phần mềm khác có thể mở mà không gặp vấn đề gì (IrfanView, XNViewPortable). Đây có phải là một hạn chế phần mềm?

"Có một lỗi không xác định trong khi mở tệp."

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

Tôi đang sử dụng Paint.NET v3.5.5 (Bản phát hành cuối cùng bản dựng 3.55.3767.28608) trên XP SP3.

Cập nhật:

Tôi nghĩ câu trả lời của Joel Coehoorn đang đi đúng hướng. Tôi đã chuyển đổi hình ảnh thành đen / trắng dẫn đến kích thước tệp chỉ dưới 5MB. Sau đó cố gắng mở và nhận lại lỗi.

Sử dụng bản gốc, tôi đã thử tất cả mọi thứ và cuối cùng nhận ra rằng nếu tôi giảm các pixel từ 6000x6000 xuống 5000x5000, tôi có thể mở hình ảnh trong Paint.NET (thậm chí màu 24 bit).


Bạn nên gửi cho Rick Brewster (nhà phát triển của paint.net) một báo cáo lỗi.
akid

Trên thực tế, tôi đã tìm thấy lời giải thích của Rick Brewster: goo.gl/ddV3 Đó là một tính năng (hoặc lỗi) đã biết.
Jay Cummins

Câu trả lời:


4

Có vẻ như bạn đang nhận được một ngoại lệ OutOfMemory. Ngoại lệ .Net OutOfMemory có một chút sai lệch. Sẽ rất phổ biến khi thấy ngoại lệ này khi bạn hết dung lượng địa chỉ , khác một chút so với bộ nhớ vật lý. Điều này có nghĩa là những việc như kiểm tra trình quản lý tác vụ để xem dung lượng bộ nhớ được sử dụng có thể không giúp bạn theo dõi vấn đề.

Thay vào đó, vấn đề có thể là do lỗi trong Paint.Net, do đó một số phần nhất định của hình ảnh được đặt bởi thời gian chạy .Net trên một thứ gọi là Heap đối tượng lớn. Sau đó, tệp được tải theo cách mà cùng một bộ nhớ này được tạo và hủy nhiều lần, có lẽ mỗi lần nó sẽ lớn hơn một chút. Trình thu gom rác không giải phóng hoặc thu gọn không gian địa chỉ từ Heap đối tượng lớn (mặc dù bộ nhớ vật lý đã được giải phóng hoặc phân trang), và vì vậy, đột nhiên bạn nhận được ngoại lệ OutOfMemory.

Giải pháp là để Microsoft thay đổi hành vi của thời gian chạy .Net liên quan đến LOH, để nó có thể đi vào và nén LOH trong một số trường hợp nhất định (có thể theo yêu cầu hoặc trước khi ném ngoại lệ OutOfMemory) hoặc cho Chương trình Paint.Net để sửa cách nó tải tệp sao cho nó phát triển chính xác bất kỳ cấu trúc dữ liệu hiện có nào gây ra sự cố, thay vì lặp đi lặp lại nhiều lần.


1
Tôi nghĩ thông báo này trên diễn đàn Paint.NET mô tả những gì đang xảy ra: goo.gl/ddV3
Jay Cummins

@Jay - đó là một cách tốt để xem xét nó. Tuy nhiên, tôi không chắc đó chính xác là vấn đề của bạn, vì vấn đề của bạn vì tôi hiểu nó phù hợp hơn: bạn không bao giờ có thể tải hình ảnh, trong khi liên kết bạn đã đăng mô tả tình huống bạn có thể tải thành công, nhưng chỉ khi đó là hình ảnh đầu tiên bạn mở sau khi khởi động Paint.Net.
Joel Coehoorn

3

Cách một tệp như thế này được lưu trữ trong bộ nhớ ảnh hưởng đến dung lượng bộ nhớ. Các ứng dụng khác có thể hiệu quả hơn về bộ nhớ.

Theo mô tả của bạn, nó thực sự nghe như Paint.NET hết bộ nhớ. Bạn có thể thử mở Trình quản lý tác vụ trong khi thử mở tệp để xem liệu mức sử dụng bộ nhớ có tăng lên không.


Gợi ý tốt. Tôi đã kiểm tra và bộ nhớ không thay đổi. Lỗi xảy ra ngay lập tức - gần như Paint.NET thậm chí không cố mở tệp.
Jay Cummins

btw, khi tôi nhận được 15 rep, tôi sẽ +1 câu trả lời này.
Jay Cummins

3

nó có thể đang cố phân bổ một khối bộ nhớ liền kề để đọc tệp, thử đóng càng nhiều ứng dụng càng tốt sau đó thử mở lại.


Tôi đã thử điều đó ngày hôm qua, nhưng dường như đó không phải là vấn đề.
Jay Cummins
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.