如果我使用pququant壓縮和打印圖像,然後使用PIL讀寫,我會看到文件大小顯着增加(有時高達2倍)。任何人有任何提示嗎?我懷疑它可能與一些PIL標誌有關,但對它不夠熟悉。使用PIL時pngquant輸出的文件大小增加
4
A
回答
3
,然後讀取,並與PIL寫出來,我看到的文件大小增加顯著(有時高達2倍)
由於PNG是無損的,因此不會引入假象,可能是與其他有問題編碼器,我看到的只有三個真正的可能性:
- 您使用的是不同的比特深度節能(例如8位輸入,輸出24位)
- 你添加了阿爾法informati節約
- 調色板被大量重新排序(這不應該保存或丟失超過百分之幾,但沒有看到實際圖像,如果2x是例外情況並且規則接近1.2x,則是有可能的)
對於內非常小的文件,非圖像塊可能是問題的一部分,如果PIL再補充一些數據,pngquant
刪除。抓住一些PNG診斷工具,可以傾倒所有塊(PLTE,tEXT等)的列表和大小,並查看實際增加的位置(Quick google link)。如果內存不足,advpng
會使用一個被騙的zlib來提高性能),但除非我們談論的文件足夠小,甚至幾個字節可能是重要的,否則zLib也可能是導致問題的原因。
+1
我是一個白癡,並改變位深度,如你所建議的。這與其他一些問題相結合導致了爆炸。感謝您的幫助,特別是在回頭看來,我絕對沒有提到這個問題的背景(......對不起,這是漫長的一天)。 – JPC
0
除非您修改任何RGBA或用不同的settings保存,否則讀寫PNG幾乎不會影響文件大小,無論您使用的是哪種庫或應用程序。
使用pngquant概念證明生成的圖像和PIL:
$ wget https://pngquant.org/Ducati_side_shadow-fs8.png
$ python
>>> from PIL import Image
>>> im = Image.open("Ducati_side_shadow-fs8.png")
>>> im.rotate(180).save("output.png")
$ stat -c "%s %n" *.png
23405 Ducati_side_shadow-fs8.png
23362 output.png
在以上示例中,output.png
是比原來的更小,甚至43個字節。我們將它旋轉倒置,但沒有觸及顏色或alpha。
相關問題
- 1. UIImagePNGRepresentation增加輸出文件大小而不是減小大小
- 2. 增加HtmlLogger輸出大小
- 3. 防止PIL增加圖像的大小
- 4. 使用Bouncy Castle庫會導致輸出的大量增加.jar文件大小
- 5. 上傳時文件大小增加
- 6. toDataURL()文件大小增加
- 7. 使用PIL查看tif文件,調整大小時質量差
- 8. 使用libgdx時堆大小增加
- 9. Imagemagick大量增加文件大小?
- 10. FPDI輸出文件大小
- 11. writeRaster輸出文件大小
- 12. Umbraco輸出文件大小
- 13. MyISAM文件大小增加了(加倍)
- 14. 增加jar文件的JVM大小
- 15. SQL Server MDF文件的大小增加
- 16. 當我增加圖像大小時td大小不會增加
- 17. 調整大小上傳的文件中使用PIL
- 18. 如何使用枚舉增加可執行文件的大小?
- 19. 如何使QGraphicsView在繪製超出其大小的線時增加其大小?
- 20. 增加上傳文件大小cakephp 3
- 21. 在netbeans.conf文件中增加堆大小
- 22. Java JPEG壓縮增加文件大小
- 23. 文件大小不斷增加
- 24. armv7s可執行文件大小增加
- 25. PHP增加上傳文件大小
- 26. 方法to_pickle增加文件大小
- 27. 增加大小
- 28. 增加大小
- 29. 增加大小
- 30. 增加大小部件
PIL的'open()'和'save()'行是什麼?如果您在沒有任何修改的情況下打開後保存,您的尺寸是否會相同? – hurturk
你能提供一個[MCVE](http://stackoverflow.com/help/mcve)嗎? – Leon
這是您提供的所有信息? –