0
我正在實現剪貼板,我想爲png圖像分配一次內存。有什麼方法可以預測png文件的最大尺寸嗎?有什麼方法可以預測PNG大小?
我正在實現剪貼板,我想爲png圖像分配一次內存。有什麼方法可以預測png文件的最大尺寸嗎?有什麼方法可以預測PNG大小?
甲PNG圖像包括幾件事情:
項1的大小是固定的:8 + 12 + 11 = 31個字節
項目2(如果需要的話)的大小爲至多12 + 3 * 256 = 780字節
項目5的大小是固定的: 12字節
項目3,原始像素數據通常是最重要的一個。已過濾的未壓縮數據達
FUD =(W * C * 8/BPC + 1)* H字節
當W =以像素爲單位的寬度,H =高度以像素爲單位,C =通道(RGB爲3,調色板或灰度爲1,RGBA爲2,GA爲2),BPC =每通道的位數(通常爲8)
用ZLIB壓縮。對於bound precisely the worst case壓縮率實際上是不可能的。在實踐中,人們可能會認爲在最糟糕的情況下,壓縮流將比原始數據多幾個字節。 然後,第3項的大小將被近似地由(再次假設8192個字節的相當小的IDAT組塊大小)由
(FUD + 6)(1 + 12/8192) ~ FUD
項目4(輔助組塊數據)結合實際上是不可能的結合。
也許這個答案可以幫助你http://stackoverflow.com/questions/11035715/how-to-determine-png-dimensions-based-on-file-size-limit#11056969 – Jhn
不是真的..... 。 – user3344003