Tôi muốn cho phép người dùng chọn ảnh mà không giới hạn kích thước, sau đó chỉnh sửa ảnh.Xử lý ảnh lớn trong iOS
Ý tưởng của tôi là tạo hình thu nhỏ của ảnh lớn có cùng kích thước với màn hình để chỉnh sửa và sau đó, khi chỉnh sửa xong, hãy sử dụng ảnh lớn để thực hiện chỉnh sửa tương tự đã được thực hiện trên hình thu nhỏ.
Khi tôi sử dụng UIGraphicsBeginImageContext
để tạo hình thu nhỏ, nó sẽ gây ra vấn đề về bộ nhớ.
Tôi biết rất khó chỉnh sửa toàn bộ hình ảnh lớn trực tiếp do giới hạn phần cứng, vì vậy tôi muốn biết liệu có cách nào tôi có thể downsample hình ảnh lớn xuống ít hơn 2048 * 2048 vấn đề bộ nhớ không?
Tôi thấy rằng có một lớp BitmapFactory
có tùy chọn inSampleSize
có thể làm giảm ảnh trong nền tảng Android. Làm thế nào điều này có thể được thực hiện trên iOS?
Bạn có thể sử dụng dữ liệu NSData * = [Dữ liệu NSDataWithContentsOfFile: tùy chọn đường dẫn: Lỗi NSDataReadingMappedAlways: & error]; Để truy cập vào dữ liệu hình ảnh mà không cần tải nó vào bộ nhớ. – Sten
nhờ mẹo của Sten, tôi đã thử sử dụng tùy chọn NSDataReadingMappedAlways, nhưng nó vẫn gặp sự cố với hình ảnh 10000 * 10000, tôi nghĩ dù tải hình ảnh như thế nào, hãy sử dụng UIGraphicsBeginImageContext để chia tỷ lệ hình ảnh gốc cần toàn bộ bitmap trong bộ nhớ. Có cách nào tôi có thể downsample hình ảnh khi tải tập tin jpeg/png vào bộ nhớ? – lingtianlan