Tôi cần tạo một hình ảnh lớn (aprox 24000 x 22000) bằng mã hóa PixelFormat.Format24bppRgb. Tôi biết nó sẽ hầu như không không thể mở nó ...Tạo hình ảnh lớn trong C#
Những gì tôi đang cố gắng để làm điều này là:
Bitmap final = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Đúng như dự đoán, một ngoại lệ được ném như tôi không thể xử lý một file 11GB trong bộ nhớ dễ dàng theo cách đó.
Nhưng tôi đã có một ý tưởng: tôi có thể viết tệp khi tôi tạo tệp không? Vì vậy, thay vì làm việc trên RAM, tôi sẽ làm việc trên HD.
Chỉ cần giải thích rõ hơn: Tôi có khoảng 13K ô và tôi dự định ghép nó lại với nhau trong tập tin ngu ngốc này. Khi tôi có thể lặp lại chúng theo thứ tự cung cấp, tôi có thể viết nó trực tiếp xuống bộ nhớ bằng cách sử dụng mã không an toàn.
Mọi đề xuất?
Thay vì mã không được quản lý, vui lòng đọc mã không an toàn ... –
Xem [Tệp ánh xạ bộ nhớ] (http://msdn.microsoft.com/en-us/library/dd997372.aspx). – GSerg
@GSerg tệp bộ nhớ được ánh xạ _can_ được sử dụng để mở/chỉnh sửa các phần từ một tệp lớn .... nhưng nó ** KHÔNG ĐƯỢC ĐỀ XUẤT ** tạo các tệp lớn đó trong bộ nhớ mappedfile !!! –