2016-07-15 44 views
0

我需要上傳一個圖像到周圍相當大的服務器,但我想保持長寬比,但壓縮文件的大小,因爲我上傳了多個文件。如何壓縮圖像但不調整大小使用Xamarin IOS?

+0

在這個問題中,你說保持寬高比,但在你說的標題不能調整大小。您是否願意在保持寬高比的同時調整圖像的寬度和高度?您可以通過發送帶有UIImage.AsJPEG()或UIImage.AsPNG()的JPG或PNG表示來進行一些壓縮,而無需調整大小。調整到較小的圖像可以節省更多的空間。 – dylansturg

回答

1

如果您不想調整圖像大小,那麼將它作爲JPEG和PNG發送將使它比發送位圖數據更小。您可以使用PNG或JPEG格式獲取圖像的NSData表示。每種格式都有一些優點/缺點,但JPEG允許犧牲質量以獲得更多壓縮。

*假設您有一個名爲imageUIImage

using(NSData pngImage = image.AsPNG()){ 
    byte[] imageBytes = pngImage.ToArray(); 
    // upload your image data, write to a file, etc. 
} 

// AsJPEG compression argument can be 0 to 1 
// 0 is max compression (lowest quality), 1 is best quality 
using(NSData jpgImage = image.AsJPEG(0.0f)){ 
    byte[] imageBytes = jpgImage.ToArray(); 
    // upload your image data, write to a file, etc. 
} 

您也可以在一個循環中使用AsJPEG隨壓縮值來嘗試並獲得到特定閾值圖像尺寸。雖然這可能有點慢,所以你必須爲你的特定用途減重的好處。

+0

謝謝..... .....爲我工作:) –

+0

@VibhaRKedilaya很高興我能幫上忙。快樂發展。 – dylansturg

+0

你有沒有在Xamarin Android中實現相同的想法? –

相關問題