簡體   English   中英

如何在Java中優化圖像以提高性能

[英]how to optimize image in java for performance

即時通訊圖像拋出tcp / ip,我想對其進行優化,並且仍然盡可能保持良好的質量,我可以使用哪種方法或算法? ps現在,如果我考慮一下,也許我應該問一下通過tcp / ip發送圖像的最佳和快速方法是什么

為了找到正確的答案,您需要查看圖像本身。 它們是在相機上捕獲的真實世界圖像嗎? 還是它們是合成圖像,例如圖標或圖形?

有損壓縮 (如JPEG)非常適合具有許多漸變和平滑邊緣的真實場景。 對於具有純色和硬邊的圖像,與無損壓縮相比,您的圖像質量損失更高(甚至覺察到),而壓縮率的增益卻更少。

基本上,為您的域建立的圖像格式是PNG (便攜式網絡圖形)和JPEG PNG圖像始終是無損壓縮的,但是其壓縮算法比競爭的GIF效果更好。 如果圖像非常合適,則您獲得的壓縮率可與JPEG媲美(如果不是,則類似於真實世界的圖像),則可獲得典型的ZIP壓縮率(約50%)。

確定有損/無損壓縮(或基於圖片類型的組合)后,您還可以考慮先以兩種格式壓縮圖像,然后進行比較,如果處理時間與網絡吞吐量無關緊要,則還應考慮漸進編碼的優勢,JPEG和PNG格式都支持這種漸進編碼。 使用漸進編碼,基本上,數據的組織方式是:接收到的數據越多,質量越好(而不是僅逐行發送圖像)。 這樣做的好處是,您可以在仍在接收圖像的同時將其顯示給用戶。 但是,為此,您需要具有此功能的解碼器。

我不知道Java中可用的庫。

您應該檢查Java Advanced Imaging API

但是要有效使用它,您需要了解哪種圖像操作適合您的問題。 除其他外,這將取決於源圖像的編碼。

至於“盡可能好的質量”,您很可能需要嘗試各種壓縮技術及其相關參數,然后再決定哪種壓縮技術可以在速度,大小和質量上達到您所需要的適當平衡。

您可以看看這個 它是常見壓縮算法(質量和壓縮率)之間的比較。

編輯:它不是直接java,但您可能可以找到所需算法的實現。

對於供人類觀看的圖像,JPEG非常好。 遠端是什么? 瀏覽器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM