我將讓用戶上傳使用JPEG壓縮的300x300圖像。有沒有辦法確定這種圖像的最大文件大小是多少?已知尺寸的JPEG圖像的最大文件大小
我可以想象這可以通過壓縮100質量的隨機噪聲來嘗試,但有沒有理論上的最大值?
說圖像是完全不可壓縮的隨機噪聲,它可能是每像素3字節(24位顏色)和元數據的餘量嗎?或者這樣的圖像在壓縮時會比原始圖像大嗎?
我將讓用戶上傳使用JPEG壓縮的300x300圖像。有沒有辦法確定這種圖像的最大文件大小是多少?已知尺寸的JPEG圖像的最大文件大小
我可以想象這可以通過壓縮100質量的隨機噪聲來嘗試,但有沒有理論上的最大值?
說圖像是完全不可壓縮的隨機噪聲,它可能是每像素3字節(24位顏色)和元數據的餘量嗎?或者這樣的圖像在壓縮時會比原始圖像大嗎?
對於最高質量的圖像(Q = 100),每個彩色像素大約8.25比特需要 http://en.wikipedia.org/wiki/JPEG#Sample_photographs
因此,對於Q=100
一個300x300
圖像上,這將導致(300 * 300) px * 8.25 bits/px = 742,500 bits = ~ 93 kB
也有無損JPEG
編碼模式,實際上不使用(last sentence, second paragraph)。但他們會有RGB典型的24 bits/pixel
。
jpeg元數據大小沒有限制,這意味着對jpeg文件的大小沒有限制。看到這個答案,我已經鏈接瞭解釋爲什麼,也爲一個現實的情況下,元數據可能會變大的例子:What is the maximum size of JPEG metadata?
因此,如果假設一個最大的實際/現實的大小適合您的目的,那麼你應該這個例子進入你的計算。在許多情況下,只要拒絕超出最大範圍的內容就可以了,因爲這是您程序預期用途的範圍之外。
但是,如果你絕對必須依靠理論,然後遺憾的是它是一個很大的大膽∞
注:我沒有一個巨大的與JPEG規範的個人經驗量,所以我會掉什麼人們已經說過允許重複的字段以及多個註釋字段。如果您找到相反的證據,請糾正我。
不是這方面的專家,但爲什麼不只是使用未壓縮位圖的大小(加上元數據的緩衝區?)作爲您將接受的最大尺寸? – Collin 2012-03-21 13:59:45
@CollinHockey我想到了這一點,但我認爲它可能會變得更大(「或者可以這樣的形象......」)。但是,如果發生這種情況,在實踐中可能並不是很多,這可能是一個很好的最大維護。 – 2012-03-21 14:13:05