最近,我编写了一个WPF程序来检测图片中的面孔。这个程序使用了一个项目牛津的API,被称为FaceAPI。然后,我想到了将我的应用程序从WPF移植到UWP (通用Windows平台)。但是,在开发过程中,我遇到了System.Windows.Media命名空间的问题。在我的UWP应用程序中,我只是没有这样的名称空间,因此我无法访问所有包含的类,比如DrawingVisual、DrawingContext等等。
下面是来自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;
}有什么办法可以替代吗?
发布于 2015-11-18 13:57:47
UWP使用了一组新的名称空间--大多数名称空间都以Windows.*作为前缀,这与系统相反。* WPF的前缀,尽管有系统.*名称空间被UWP和WPF使用。下面是一个用于新命名空间的链接。为了更好地掌握UWP基础知识,您也可能喜欢阅读通用Windows平台应用指南。
如注释部分所示,您需要的是一个以Windows.*开头的名称空间,所提供的链接应该会使您正确。
https://stackoverflow.com/questions/33706819
复制相似问题