2017-05-19 51 views
0

我們已經在windows c#中創建了一個軟件,用於根據鼠標繪製的矩形裁剪圖像。C#將圖片大小限制在150kb以下

圖像是各種尺寸和文件大小。

當用戶保存圖像時,我們希望將文件大小保持在150Kb以下。

對於150kb以上的文件 我們在使用圖像插值模式進行保存的同時對圖像進行壓縮。

如果仍然大小超過150kb,我們希望下一步是按比例縮小文件大小,直到它小於150 kB。

我們已經創建了一個循環來減少5%的圖像尺寸,然後我們保存文件並檢查大小,並繼續到150kb。

因爲我們將要處理非常多的圖像以確認這是否是正確的方式?或者來自堆棧溢出的人提出更好的方法。

如果需要,將共享代碼。

P.S. 每次保存圖像只是爲了檢查大小不正確。

+1

你是怎麼回事要確定編碼圖像的大小,如果你不完全編碼它(此時你已經救了它,內存流/字節數組)?除此之外,請確保您的調整大小循環每次調整原始圖像的大小,而不是先前調整大小的大小,並可能將您的5%方法更改爲更聰明一些(基於位圖大小和平均壓縮提供的二進制搜索?大小預測由文件格式?)。 – GSerg

+1

@GSerg我讀「保存」爲「保存到磁盤」。在這種情況下,與將數據寫入磁盤相比,將內存「僅」保存在內存流/字節數組中的註釋實際上是保持性能的部分。 –

+0

感謝將它保存到內存使其更快。 –

回答

0

我會建議你自己計算圖像大小。瞭解格式壓縮和維度可以或多或少地預測圖像的大小。你可以檢查此鏈接爲example

+0

該工具非常有用。 –

+0

提供任何此類工具添加到我的項目,這會起作用自動 –

+0

我不知道退出庫。但我認爲這只是您需要在項目中採用的一個公式。你可以檢查一些類似的信息[主題](http://stackoverflow.com/questions/43280125/is-there-some-way-to-predict-png-size)。或者,也許你可以看看我上面發佈的網站的源代碼,並瞭解它是如何工作的。 – Artyom