问题标签 [drawingcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3758 浏览

wpf - DrawingContext.DrawLine:笔没有完全不透明度?

当我画这样的东西时(这里只是随机画):

DrawLine 和 DrawEllipse 的颜色混合。(我发现它只适用于使用笔的 DrawLine,而不是使用 Brush 的其他形式,如 Rectangle 和 Ellipse)。奇怪的是,即使使用来自底层网格背景 (argh) 的 LinearGradientBrush 的颜色。 我希望它们每个都具有完全不透明度的 z 顺序。

这里是 XAML 代码:

谢谢你的帮助。

0 投票
1 回答
1218 浏览

wpf - 在 WPF DrawingContext 上绘制旋转图像时的 DrawImage 过滤

我在控件上绘制图像,通常仅旋转几度。这使得适当的过滤很重要,但我看到的伪影看起来像是最近邻问题。绘制图像时在哪里可以设置要使用的过滤器?

图像大于屏幕上的最终尺寸。

0 投票
3 回答
1137 浏览

wpf - 多线程图像合成

我正在使用 WPF 成像来使用 DrawingVisual 将文本、3d 图形和图像合成在一起。然后将结果呈现为 RenderTargetBitmap 并以 jpeg 格式保存到磁盘。所有这些都发生在没有可视窗口的代码中。

只要我一次只尝试做一件事,它就可以很好地工作。但是,我想看看是否可以通过使用多个线程进行渲染来加快速度。每个线程都使用一个创建自己的 DrawingContext、DrawingVisual 等的对象。但是,当我尝试并行访问它们时,显然在某处存在一些共享状态,因为我得到了虚假错误。有时它是“调用线程无法访问此对象,因为另一个线程创建了它”。其他时候,当我添加指向 3D 几何图形时,从 WPF 的内部冒出的 NullReferenceExceptions 看起来更邪恶。

有没有办法确保每个线程与 WPF 保持隔离?还是共享状态是不可避免的?

0 投票
3 回答
4525 浏览

c# - DrawingContext 到位图文件

我有一个 DrawingContext(Visual 或 DrawingGroup 的一部分),我在其中绘制一堆矩形和/或 1 位图像。把它想象成一个掩蔽的 1 位图像。我想将其转换为位图图像文件。

使用RenderTargetBitmap不是一个选项,因为它只能以 32 位像素格式渲染,所以如果我必须渲染一个 20MB 的 1 位图像,我最终会在我的堆上获得 640MB (20*32) 的内存。这当然会产生巨大的 LOH 碎片,并且应用程序在第二次拍摄时内存不足。

所以,我基本上需要一种有效地从绘图上下文写入 1 位位图文件的方法。任何想法/建议/替代方法将不胜感激。

0 投票
1 回答
3376 浏览

c# - DrawText在DrawingContext中的一个角度?

因此,我使用以下代码获取现有图像,输入表单中的文本,然后将输入表单中的文本放置到现有图像上并将其另存为新图像:

如您所见,它调用以下函数来绘制文本:

现在我需要的很简单......我需要从中心位置以某个角度绘制 text2(并且只有 text2)。中心位置很简单,应该是:

那么,如果我想在中心位置旋转 -30 度角来绘制这个文本呢?请记住,我只想要旋转文本 2,而不是其他文本,也不是原始图像源。

0 投票
1 回答
130 浏览

c# - 我可以全局访问 DrawContext 变量吗?(在我的应用程序的任何类别中)

我的编程技能不太好,而且他们在 C# 方面仍然非常业余计时器启动并使用 Drawcontext.DrawText 方法在屏幕上显示任何消息,但如您所见,如果我尝试引入 DrawContext 的新变量并将 draw 值分配给它,我将无法访问 on_time_event 中的绘图变量……它给出和异常...因为 Draw 上下文的新变量从未赋值我该怎么办?请在这方面提供任何帮助,我会非常有帮助

0 投票
3 回答
1418 浏览

c# - 使用 DrawingContext 相对于中心绘制

我一直想知道如何在 WPF 中绘制DrawingContext相对于控件左上角以外的东西的东西。我的问题是我想通过连接各种点来绘制一些形状,并且这些点必须相对于主机控件的中心定位,Y 指向上方。

我的元素是使用自定义子类树呈现的DrawingVisual,根是Border包含VisualCollection. ScaleTransform我通过将 a 指定为RenderTransformthat来解决 Y 方向问题Border,基本上垂直翻转整个控件。

不过,其他问题就没有这样的运气了。关于如何将我的原点居中的任何想法?

0 投票
1 回答
174 浏览

c# - 在 Dispather 计时器中访问 Draw Context 会出现异常

我想做的是首先找到肩关节的角度,直到现在我已经设法做到了。我现在想做的是当角度在 70 到 90 之间的范围内时开始,持续 3 秒并在每秒它应该检查角度是否仍在范围内,如果它然后显示在屏幕上确定,否则在显示消息后重新启动计时器你没有完成时间限制请让他们对 C# 和 kinect 有任何帮助这方面将有助于 em 面临的问题图像的链接是:http: //i46.tinypic.com/2nu4ygw.jpg

请帮忙!!

我在这部分代码中遇到异常

0 投票
3 回答
2089 浏览

wpf - 优化 WPF DrawingContext.DrawLine

除了使用

我在我的应用程序中画了很多线,99% 的时间都花在了循环调用上。

[a,b] 来自大量不断变化的点。我不需要任何输入反馈/事件或类似的东西,...我只需要非常快地绘制点。

有什么建议么?

0 投票
1 回答
719 浏览

c# - 从文件到屏幕绘制骨架动画

我基本上想做的是使用 C# 和 Kinect SDK(完成)将 kinect 骨架帧数据(关节位置)写入文件,然后在外部处理这些数据(完成),然后将数据读回我的应用程序(完成)并逐帧将数据绘制为光点步行者(骨架关节),以便我看到动画。(问题)

我的问题是:如何使用 C#(及其 DrawingContext 类)绘制这个 30fps 动画?

我想使用 DrawingContext,因为我在录制时已经将它用于 SkeletonFrames 的实时输出。就像这样简单地完成,类似于“Skeleton Basics”SDK 示例:

所以 kinect 为我提供了大约 30fps 使用事件,我只是绘制数据。

但是当没有 kinect 但数据是从文件/内存中读取时,我该如何绘制呢?(目前使用的是 2DArray [Frame, Joint])

我想过让一个线程以 30fps 运行(使用睡眠来实现帧率),然后发送一个类似的事件或直接绘制。但是我试图让这个工作完全失败。例如,我没有将事件发送到主线程进行绘图。

问题可能是我缺乏对 C# 的理解(我对它完全陌生)......

关于如何设置和工作的任何提示?