2014-05-06 190 views
1

我的應用程序中有一個CameraCaptureTask和一個PhotoChooserTask,您可以在其中獲取或加載照片。所有這些的最終目標是最終將其發送到Azure Web API。Windows Phone照片尺寸

我從這兩項任務中獲得的照片非常大(約4mb),大小約爲3000x2000像素。

有沒有辦法得到一個更小的圖片版本?這是我如何處理選擇器;

public void PhotoChooserTaskCompleted(object sender, PhotoResult e) 
    { 
     if (e.TaskResult == TaskResult.OK) 
     { 
      var bmp = new BitmapImage(); 
      bmp.SetSource(e.ChosenPhoto); 

      var writeableBitmap = new WriteableBitmap(bmp); 
      ... 

有沒有辦法加載一個較小的「縮略圖」版本或我必須操縱圖像並調整它的大小?

感謝您的指點。

+0

您必須手動調整它的大小。 –

+0

您能否提供更多的細節和解釋?非常感謝! :) –

回答

0
WriteableBitmap bmpWritable = new WriteableBitmap(bmp); 
MemoryStream ms = new MemoryStream(); 
Extensions.SaveJpeg(bmpWritable, ms, newWidth, newHeight, 0, 100); 

我建議你按比例調整它。 希望這有助於。

此外,您不需要有兩個單獨的任務從攝像頭和圖庫中獲取圖像。對於PhotoChooserTask本身,您可以將ShowCamera屬性設置爲true。這將在ApplicationBar中顯示相機按鈕時,當您打開圖庫

+0

嗨 - 感謝代碼演示。我結束了使用WriteableBitmap.Resize(),但這指出我在正確的方向。 – creatiive