Hình ảnh & hình ảnh · Trình chỉnh sửa hình ảnh & bản vẽ của trình duyệt
Tại sao việc chỉnh sửa ảnh 12 megapixel trong trình duyệt lại cần khoảng 48 MB
· Cách thức hoạt động
image-editing vải vẽ browser-processing
3 MB JPEG trở thành hàng chục megabyte ngay khi được giải mã, vì mỗi pixel cần bốn byte trong bộ nhớ. Bài đăng này giải thích số học, tại sao các công cụ trình duyệt bị giới hạn bởi bộ nhớ thiết bị của bạn chứ không phải giới hạn tải lên và những việc cần làm khi tệp quá lớn.
Ảnh mở chậm hoặc hoàn toàn không mở - vấn đề đằng sau trình chỉnh sửa trình duyệt bị treo trên một tệp máy ảnh lớn
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Bắt đầu với ảnh mở chậm hoặc hoàn toàn không mở: đó là vấn đề thực tế đằng sau trình chỉnh sửa trình duyệt bị treo trên một tệp máy ảnh lớn. Đối với tính toán bộ nhớ này, quy tắc được triển khai là RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes cho một bitmap trước khi sao chép hoạt động. Tệp đầu vào được giới hạn ở 40 MB, trong khi kích thước được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước giảm được báo cáo sau khi mở. Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm với một thông báo. Các khung vẽ và lịch sử đang hoạt động có thể thêm các bản sao, vì vậy đây là đường cơ sở chứ không phải là lời hứa về toàn bộ bộ nhớ tab.
Kích thước tệp so với kích thước được giải mã - tại sao việc nén làm cho tệp nhỏ nhưng trình chỉnh sửa phải hoạt động trên mọi pixel không nén
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Tách kích thước tệp khỏi kích thước được giải mã: quá trình nén làm cho JPEG nhỏ trên đĩa nhưng trình chỉnh sửa phải hoạt động trên mọi pixel không nén. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Tệp đầu vào được giới hạn ở mức 40 MB, trong khi các thứ nguyên được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị. Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm tỷ lệ với một thông báo.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được. Các canvas đang hoạt động sẽ thêm các bản sao, vì vậy hình ảnh bitmap đơn chỉ là đường cơ sở.
Bốn byte trên mỗi pixel: số học — chiều rộng × chiều cao × RGBA mang lại 48 MB cho 12 megapixel và nhiều hơn nữa cho các bản sao làm việc
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Số học quan trọng là bốn byte trên mỗi pixel: chiều rộng nhân với chiều cao và RGBA mang lại 48 MB cho 12 megapixel, trước bất kỳ bản sao hoạt động nào. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm tỷ lệ với một thông báo. Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes trước khi sao chép hoạt động. Các khung vẽ và lịch sử đang hoạt động sẽ thêm các bản sao, vì vậy hình ảnh bitmap đơn là đường cơ sở.
Các giới hạn đến từ đâu — giới hạn kích thước canvas của trình duyệt, bộ nhớ trên mỗi tab và sự khác biệt giữa điện thoại và máy tính để bàn
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Các giới hạn đến từ một số nơi: kích thước canvas của trình duyệt, bộ nhớ trên mỗi tab và sự khác biệt giữa điện thoại và máy tính để bàn. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được. RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes cho một bitmap trước khi sao chép hoạt động.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. Tệp đầu vào được giới hạn ở 40 MB, trong khi kích thước được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị. Các khung vẽ và lịch sử đang hoạt động sẽ thêm các bản sao, vì vậy hình ảnh bitmap đơn là đường cơ sở.
Các giới hạn được triển khai là ngân sách pixel và kích thước, không phải tổng số bộ nhớ được đoán trên mỗi tab
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Mô hình cục bộ có nghĩa là bộ nhớ thiết bị, không phải nhóm xử lý hình ảnh phía máy chủ, là mức trần thực tế. Đối với tính toán bộ nhớ này, quy tắc được triển khai là RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes cho một bitmap trước khi sao chép hoạt động. Tệp đầu vào được giới hạn ở 40 MB, trong khi kích thước được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm với một thông báo. Các khung vẽ và lịch sử đang hoạt động sẽ thêm các bản sao, vì vậy đây là đường cơ sở.
Đầu vào tệp có giới hạn xác thực 40 MB ngay cả khi không có hình ảnh nào được tải lên
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Hãy xem xét một ảnh 6000×4000: một bản sao RGBA đầy đủ là 96,000,000 bytes trước khi lắp thiết bị, lịch sử hoặc các bức vẽ khác. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Tệp đầu vào được giới hạn ở mức 40 MB, trong khi các thứ nguyên được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị. Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm tỷ lệ với một thông báo.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được. Canvas đang hoạt động sẽ thêm bản sao, vì vậy đây là đường cơ sở.
Ví dụ đã hoạt động: nguồn 6000×4000 cần 96,000,000 bytes cho mỗi bản sao RGBA trước khi lắp thiết bị
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Điều này không bao gồm các giới hạn chính xác trên mỗi trình duyệt, những giới hạn này thay đổi giữa các phiên bản hoặc hoạt động bộ nhớ của các định dạng RAW và HDR. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Ngân sách mặc định là 33,177,600 pixel và đường dẫn iOS sử dụng 16,777,216; nguồn quá khổ được giảm tỷ lệ với một thông báo. Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes trước khi sao chép hoạt động. Các khung vẽ và lịch sử đang hoạt động sẽ thêm các bản sao, vì vậy đây là đường cơ sở.
Bài học rút ra: biết tính toán, sau đó chỉnh sửa — cách Trình chỉnh sửa hình ảnh & bản vẽ của trình duyệt xử lý cục bộ các tệp lớn và việc cần làm nếu thiết bị sắp hết pin
Megabyte được nén không dự đoán dấu chân chỉnh sửa được giải mã. Điều cần rút ra là phải biết số học trước khi chỉnh sửa: Trình chỉnh sửa hình ảnh & bản vẽ của trình duyệt xử lý cục bộ các tệp lớn nhưng thiết bị vẫn có thể chạy trong thời gian ngắn. Đối với tính toán bộ nhớ này, quy tắc được triển khai là Hoàn tác giữ lại tối đa 40 bước và khoảng 96 MiB, loại bỏ các mục nhập cũ nhất trong khi vẫn giữ lại một hành động quá lớn có thể hoàn tác được. RGBA ước tính ảnh chụp nhanh sử dụng 4 byte cho mỗi pixel, do đó, 12 triệu pixel yêu cầu 48,000,000 bytes cho một bitmap trước khi sao chép hoạt động.
Nhân chiều rộng với chiều cao với 4 cho một bản sao RGBA, sau đó so sánh nguồn với kích thước đã giảm. Tệp đầu vào được giới hạn ở 40 MB, trong khi kích thước được giải mã bị ràng buộc độc lập ở 8,192 mỗi bên và ngân sách pixel của thiết bị. Các khung vẽ và lịch sử đang hoạt động sẽ thêm các bản sao, vì vậy đây là đường cơ sở.