Windows 8 使用C+直接在IMFMediaBuffer上绘制一个矩形+;代码

Windows 8 使用C+直接在IMFMediaBuffer上绘制一个矩形+;代码,windows-8,microsoft-metro,windows-runtime,ms-media-foundation,Windows 8,Microsoft Metro,Windows Runtime,Ms Media Foundation,目前,我尝试从中修改示例。我倾向于实现以下目标 用C++代码进行人脸检测。 将检测到的面坐标传回C代码 让C#在屏幕上绘制检测到的人脸矩形 我完成了第一步。然而,我在第二步被吸引住了。我面临着与此类似的问题:。我找不到一个方法,来制作我的C++ MFT代码,用C语言编写代码。 我在考虑另一个解决办法直接使用C++代码在 IMFMediaBuffer < /代码>上绘制矩形。< /强> < /P> 但是,我看不到微软提供这样的API。如果没有,我可以使用什么正确的方法?如果可以设置像素颜色,那

目前,我尝试从中修改示例。我倾向于实现以下目标

  • 用C++代码进行人脸检测。
  • 将检测到的面坐标传回C代码
  • 让C#在屏幕上绘制检测到的人脸矩形
我完成了第一步。然而,我在第二步被吸引住了。我面临着与此类似的问题:。我找不到一个方法,来制作我的C++ MFT代码,用C语言编写代码。 我在考虑另一个解决办法<强>直接使用C++代码在<代码> IMFMediaBuffer < /代码>上绘制矩形。< /强> < /P>
但是,我看不到微软提供这样的API。如果没有,我可以使用什么正确的方法?

如果可以设置像素颜色,那么画一个带循环的矩形应该相当简单

for (int y = top; y <= bottom; y++)
    for (int x = left; x <= right; x++)
        pixels[y * width + x] = color; // pseudocode

for(int y=top;y)你能在该缓冲区中设置像素颜色吗?是的。我可以在缓冲区中设置像素值。但是,通过填充像素1乘以1来绘制形状(矩形、圆形等)会很繁琐。可能不繁琐,但如果你以前从未这样做过,则需要一些思考。
for (int y = -r; y <= r; y++)
    for (int x = -r; x <= r; x++)
        if (x * x + y * y < r * r)
            pixels[(center.y + y) * width + center.x + x] = color; // pseudocode