WPF下 100w个像素数组,怎么快速呈现?

sdzzlove 2013-03-28 09:33:46
怎么没发现WPF下画像素点的函数,不可能不能画像素点吧?100w个像素点坐标数组,怎么快速画出来呢?
...全文
306 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2013-04-03
  • 打赏
  • 举报
回复
100w像素的绘制在gdi+中是毫米级的,不知道wpf有没有提供类似的功能。
lhx527099095 2013-04-03
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要自己调用底层的directx api用c++来写可能会高很多
assky124 2013-04-03
  • 打赏
  • 举报
回复
WPF中有个WriteBitmap(可能不是这个名字,反正就是类似于位图的),试试这个
sdzzlove 2013-04-03
  • 打赏
  • 举报
回复
期待 高手解答
sdzzlove 2013-04-03
  • 打赏
  • 举报
回复
引用 12 楼 lhx527099095 的回复:
引用 11 楼 sdzzlove 的回复:引用 9 楼 lhx527099095 的回复:引用 7 楼 sdzzlove 的回复:引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是w……
我先试试 好的谢谢
lhx527099095 2013-04-03
  • 打赏
  • 举报
回复
引用 11 楼 sdzzlove 的回复:
引用 9 楼 lhx527099095 的回复:引用 7 楼 sdzzlove 的回复:引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用……
可以 grid里面底图 然后用dv画特征点
sdzzlove 2013-04-03
  • 打赏
  • 举报
回复
引用 9 楼 lhx527099095 的回复:
引用 7 楼 sdzzlove 的回复:引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要……
我目前是grid里有个image控件类似底层,而可以用你说的DrawingVisual 画上层特征点。
sdzzlove 2013-04-03
  • 打赏
  • 举报
回复
引用 8 楼 lhx527099095 的回复:
引用 7 楼 sdzzlove 的回复:引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要……
我mfc写的嵌入wpf下貌似有个问题,我界面上有6个窗口,每个窗口独立进程显示每幅相机的图,原先我用的是image控件绑定,6个位置显示6个进程6个相机的抓图,mfc嵌入wpf不能得到这6个位置啊,只能得到一个主窗体的handle,,,貌似 我这样理解的?您怎么看?
lhx527099095 2013-04-03
  • 打赏
  • 举报
回复
引用 7 楼 sdzzlove 的回复:
引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要自己调用底层的directx api用c……
还有就是不是让你用grid继承DrawingVisual 而且分开来画 你肯定有两层 一层专门画底图 第二层专门画特征点 不要乱 你可以用一个类里面有两个DrawingVisual 一个负责绘制底图 一个负责绘制点 这种图形很复杂 计算很多的 最好不要用wpf的uielement控件 比如path什么的 因为他们都有很多的事件监听啊什么的 最好用轻量的来
lhx527099095 2013-04-03
  • 打赏
  • 举报
回复
引用 7 楼 sdzzlove 的回复:
引用 5 楼 lhx527099095 的回复:http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要自己调用底层的directx api用c……
必须自己写个容器类 继承FrameworkElement http://msdn.microsoft.com/zh-cn/library/ms742254(v=vs.100).aspx 然后再上面绘图 这个是比较轻量的绘图 性能优化上wpf官方推荐的做法之一 如果还不行就像你说的 需要用mfc写 然后嵌入wpf程序里 http://blog.csdn.net/meiyuli/article/details/6905991 还有这个 http://msdn.microsoft.com/zh-cn/library/system.windows.interop.hwndhost.aspx 希望对你有用
sdzzlove 2013-04-03
  • 打赏
  • 举报
回复
引用 5 楼 lhx527099095 的回复:
http://msdn.microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx DrawingVisual是wpf推荐的轻量级的绘图 我大部分绘图是用这个来的 楼主可以试试 如果还是不行的话 需要自己调用底层的directx api用c++来写可能会高很多
我是新手, 主要想实现,图像处理,就是我在Grid里显示了image,然后在grid上画散点,来画出一些imgage的特征点,可能有几十w个散点,我用streamDrawing画线的方式明显不好,但是没有更好的方法。 针对你说的 我有看过,方法一 用DrawingVisual,但是没做成功,用grid不能承接DrawingVisual类型,能否提示下怎么改 ?我试试? 针对方法二,其实我内层利用的是MFC,MFC内部我都把想要的散点坐标有数据,但是怎么用呢?我有函数入口,mfc下参数是DC和数据类,WPF貌似得不到wpf下image控件dc,请问底层API,我从何下手呢?谢谢。
sdzzlove 2013-03-28
  • 打赏
  • 举报
回复
我是用的path类 但是太慢了 System.Windows.Shapes.Path myPath = new System.Windows.Shapes.Path(); myPath.Stroke = color;// System.Windows.Media.Brushes.Black; //System.Windows.Media.Brushes.Violet; //System.Windows.Media.Brushes.Black; myPath.StrokeThickness = 1; var streamDrawing = new StreamGeometry(); System.Windows.Point pte = new System.Windows.Point(); using (var ctx = streamDrawing.Open()) { //ctx.BeginFigure(pts[0], true, false); for (int i = 0; i < arrPoints.Length; i++) { pte.X = arrPoints[i].X + 0.5; pte.Y = arrPoints[i].Y + 0.5; ctx.BeginFigure(arrPoints[i], true, false); ctx.LineTo(pte, true, true); } } streamDrawing.Freeze(); myPath.Data = streamDrawing; //source.Freeze(); // return source; DrawGrid.Children.Add(myPath); 10W个点 明显就感到 很慢了。30w就更慢了, 我想知道除了我这种画短线表示像素外,还有没有可以画像素点的方法! 这个用path 也很慢的!
gxingmin 2013-03-28
  • 打赏
  • 举报
回复
在WPF中有个Path类,你可以通过这个去画图,详情你可以参考这篇MSDN文档: http://msdn.microsoft.com/zh-cn/library/system.windows.shapes.path.aspx

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧