2012-01-11 47 views
1

我正在使用一個ImagePickerViewController的應用程序的一部分拍攝照片/使用現有的照片作爲個人資料頁面。我正在將圖片(所有JPEG)的分辨率縮小到480x320,而不是將其壓縮得很好。問題是我無法確定哪些照片需要分辨率降低和壓縮。iOS圖像壓縮算法 - 我將如何去創建一個?

現在我想要做的是編寫一個算法,以減少圖片的分辨率,如果它大於480x320,並調整圖片的壓縮級別,以便它的大小約爲30-50 KB。壓縮級別將隨着圖片大小而變化,因此小於30-50 KB的任何內容都不會進行壓縮,而所需的任何壓縮都將達到30-50 KB。

我該如何去編寫一個算法來處理這個問題?

回答

2

您需要進行反覆試驗 - 將圖像大小調整爲480x320,然後以95%的質量將其保存爲JPEG格式。檢查文件大小,如果太大,請再次嘗試90%。重複,直到你進入正確的範圍。

這可能會相對較慢(幾秒?),所以在後臺線程上這樣做。

+0

同意。這是一個捕獲 - 22。壓縮不會以固定的比例減少 - 它基於很多數據,如數據的可變性。直到壓縮完成後,你纔會知道你有多少。反覆試驗是唯一的方法。 – Steve 2012-01-11 20:01:49