2011-07-10 85 views
1

我正在做標準的CameraChooserTask舞蹈。在我的回調中,我想獲取拍攝照片的尺寸。如何從流中獲取圖像的尺寸(不渲染它)?

我試着用BitmapImage,如下,但是由於BitmapImage不是渲染樹的一部分,我不認爲它實際上沒有任何解碼(其ImageOpened不會觸發事件)。

private void CameraCapture_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null) 
    { 
    // This code DOES NOT work: 
    // BitmapImage bi = new BitmapImage(); 
    // bi.SetSource(stream); 
    // ... use bi.PixelHeight and bi.PixelWidth ... 

回答

2

嗯,訣竅是強迫某人使用BitmapSource。通過將其分配爲Image的源,可以設置PixelHeightPixelWidth屬性。

private void CameraCapture_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null) 
    { 
    BitmapImage bi = new BitmapImage(); 
    bi.SetSource(stream); 

    Image image = new Image(); 
    image.Source = bi; 

    // ... use bi.PixelHeight and bi.PixelWidth ...