2012-03-21 59 views
14

Tôi sẽ cho phép người dùng tải lên hình ảnh có kích thước 300x300 được nén bằng JPEG. Có cách nào để xác định kích thước tệp tối đa của một hình ảnh như vậy không?Kích thước tệp tối đa của hình ảnh JPEG có kích thước đã biết

Tôi có thể tưởng tượng điều này có thể được thử bằng cách nén nhiễu ngẫu nhiên ở 100 chất lượng, nhưng có tối đa lý thuyết không?

Giả sử hình ảnh là tiếng ồn ngẫu nhiên không thể nén hoàn toàn, có thể là 3 byte cho mỗi pixel (màu 24 bit) và lề cho siêu dữ liệu không? Hoặc một hình ảnh như vậy có thể lớn hơn bản gốc khi được nén?

+0

Không phải là một chuyên gia về điều này, nhưng tại sao không chỉ sử dụng kích thước của một bitmap không nén (cộng với bộ đệm cho siêu dữ liệu?) Là lớn nhất bạn sẽ chấp nhận? – Collin

+0

@CollinHockey Tôi đã nghĩ về điều đó nhưng tôi nghĩ rằng nó có thể trở nên lớn hơn ("Hoặc có thể là một hình ảnh ..."). Tuy nhiên, nếu điều đó xảy ra, nó có lẽ không nhiều lắm trong thực tế mà có thể sẽ là một mức tối đa tốt để duy trì. –

Trả lời

12

From wikipedia:

Đối với hình ảnh chất lượng cao nhất (Q = 100), khoảng 8,25 bit trên mỗi pixel màu được yêu cầu http://en.wikipedia.org/wiki/JPEG#Sample_photographs

Vì vậy, ví Q=100 trên một hình ảnh 300x300, mà có thể kết quả là (300 * 300) px * 8.25 bits/px = 742,500 bits = ~ 93 kB

Ngoài ra còn có tổn thất JPEG chế độ mã hóa, thực tế không được sử dụng (last sentence, second paragraph). Nhưng họ sẽ có RGB điển hình 24 bits/pixel.

3

Không có giới hạn về kích thước siêu dữ liệu jpeg, điều đó có nghĩa là không có giới hạn về kích thước tệp jpeg. Xem câu trả lời này tôi đã liên kết để giải thích lý do tại sao và cũng cho ví dụ về tình huống thực tế nơi siêu dữ liệu có thể lớn: What is the maximum size of JPEG metadata?

Vì vậy, nếu giả sử kích thước thực tế/thực tế phù hợp với mục đích của bạn thì bạn nên ví dụ đó vào tính toán của bạn. Trong nhiều ngữ cảnh, bạn có thể từ chối mọi thứ bên ngoài mức tối đa đó ngoài phạm vi sử dụng dự định của chương trình của bạn.

Nhưng nếu bạn hoàn toàn phải dựa vào lý thuyết, sau đó không may đó là một lớn đậm

Lưu ý: Tôi không có một số lượng lớn các kinh nghiệm cá nhân với các đặc điểm kỹ thuật jpeg, vì vậy tôi sẽ tắt của gì mọi người đã nói về các trường lặp lại được cho phép, cũng như nhiều trường nhận xét. Hãy sửa tôi nếu bạn tìm thấy bằng chứng ngược lại.

Các vấn đề liên quan