none
C#是否能实现下列图像运算和显示 RRS feed

  • 问题

  • 要求如下:

    1)在一张Canvas上画图像(从工程里读取的Image图像)

    2)画图,需要设定Path(涉及贝赛尔曲线)

    3)图像画到指定Path上之前,还需要进行Matrix转换(水平,垂直镜像,旋转)

    4)画到画布上,需要短时内多次刷新Canvas(重新计算处理上列操作)

    2012年6月6日 15:19

答案

全部回复

  • 不是很明白你的Image是以Path为路径分布呢,还是图像本身要以Path为路径进行扭曲?

    不过,在我看来,要实现这样的特效还是选择用Direct2D吧, 单纯XAML + .Net 没有提供这么强大的组件来实现。

    这些例子基本上涵盖你设计的一些点: http://social.msdn.microsoft.com/Search/en-US/windows/apps?query=direct2d%20metro&refinement=180&beta=0&ac=8


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 whyuan 2012年6月7日 9:55
    2012年6月7日 3:20
    版主
  • 实际功能就是一个图片模拟翻页效果的实现,在其他平台下已经有相关代码。实际就是Image图像旋转处理,和填充到Canvas的指定Path上。

    由于主程序已经使用C#,所以,能否使用C#自定义组件方式实现上述功能?

    如果特效只能用Direct2D,能否用C++自定义好控件后,添加到C#工程中使用?

    谢谢。

    2012年6月7日 8:55
  • 能不能用其他语言做个函数,在C#里调用一下。接口也就是有Image相关一些类(如BitmapImage等)和int,double。

    再写一个定时器,定时重新计算一下,刷新一个界面。

    2012年6月7日 9:18
  • 可以在C++中通过Direct2D设计好WinRT的类型和API,然后在C#中使用的。

    -----------------

    ”实际就是Image图像旋转处理,和填充到Canvas的指定Path上。“  

    简单的你用ImageBrush Fill Path就可以,然后针对Path做Transform 就行了。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 whyuan 2012年6月7日 9:56
    2012年6月7日 9:34
    版主
  • 恩,找了一个C#调用Direct2D的例子。

    http://code.msdn.microsoft.com/Metro-CSharp-using-8d6a2f60/sourcecode?fileId=54424&pathId=1187568786

    2012年6月7日 9:47