2015-11-14 43 views
1

最近我寫了一個WPF程序來檢測圖片中的人臉。該程序使用ProjectOxford的API之一即FaceAPI。 然後我有一個想法將我的應用程序從WPF移植到UWP(通用Windows平臺)。但是,在開發過程中,我遇到了System.Windows.Media命名空間的問題。在我的UWP應用程序中,我只是沒有這樣的命名空間,因此我無法訪問所有包含的類,例如DrawingVisual,DrawingContext等。System.Windows.Media在UWP

以下是WPF中需要移植到UWP的有問題的代碼塊:

if (faceRects.Length > 0) 
{ 
    DrawingVisual visual = new DrawingVisual(); 
    DrawingContext drawindContext = visual.RenderOpen(); 

    drawindContext.drawimage(bitmapImage, 
     new Rect(0, 0, bitmapImage.Width, bitmapImage.Height)); 

    double dpi = bitmapImage.DpiX; 
    double resizefactor = 96/dpi; 

    foreach (var facerect in faceRects) 
    { 
     drawindContext.drawrectangle(
      Brushes.transparent, 
      new Pen(Brushes.red, 2), 
      new Rect(
       faceRect.Left * resizefactor, 
       faceRect.Top * resizefactor, 
       faceRect.Width * resizefactor, 
       faceRect.Height * resizefactor 
      ) 
     ); 
    } 

    drawindcontext.close(); 

    rendertargetbitmap facewithrectbitmap = new rendertargetbitmap(
     (int)(bitmapsource.pixelwidth * resizefactor), 
     (int)(bitmapsource.pixelheight * resizefactor), 
     96, 
     96, 
     pixelformats.pbgra32); 

    facewithrectbitmap.render(visual); 

    facephoto.source = facewithrectbitmap; 
} 

任何想法如何取代?

+0

應該使用[Windows.Media](https://msdn.microsoft.com/en-AU/library/windows/apps/windows.media.aspx)來代替嗎?此外,_ [檢查此列表](https://msdn.microsoft.com/en-AU/library/windows/apps/br211377.aspx)_ – MickyD

+0

Windows運行時中的相應命名空間是'Windows.UI.Xaml。 Media'。但是,DrawingVisual和DrawingContext在其中沒有任何內容。這些類在Window Runtime中不可用。查看[RenderTargetBitmap]的Windows Runtime API文檔(https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.imaging.rendertargetbitmap.aspx)。 – Clemens

+0

嘿@KonstantinChsherbakov,我似乎有完全相同的問題。如果我可能會問,你最終會使用什麼API? – kskyriacou

回答

1

UWP使用了一組新的命名空間 - 其中大部分都以Windows *作爲前綴,這與WPF的System。*前綴形成對比,儘管UWP和WPF都使用了System。*命名空間。這裏是一個用於新命名空間的 link。您也可以閱讀Guide to Universal Windows Platform apps以更好地理解UWP基礎知識。

如註釋部分所示,您需要的是以Windows *開頭的命名空間,並且提供的鏈接應該能夠幫助您。