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;
}
任何想法如何取代?
應該使用[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
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
嘿@KonstantinChsherbakov,我似乎有完全相同的問題。如果我可能會問,你最終會使用什麼API? – kskyriacou