问题标签 [win2d]

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 投票
1 回答
88 浏览

win2d - 为什么绘制到 CanvasAnimatedControl 上时画面外的位图会模糊?

我正在画到屏幕外CanvasRenderTarget。然后我把它画到我的CanvasAnimatedControl.

复制的位图“模糊”;第一行是离屏位图,第二行是直接绘制到会话CanvasAnimatedControl

模糊

它不是太明显,但在应用缩放时更加明显:

在此处输入图像描述

这是代码:

这是 XAML:

怎么了?

更新 我想通了,但认为这可能是一个有用的参考问题

0 投票
3 回答
138 浏览

c# - C#/WPF 合并连续的事件调用

Win2D 具有此功能Invalidate(),调用时将重绘整个控件,并且在快速连续调用时,它们将合并为一个更新,其中包含先前调用的任何更改。我试图在我自己的应用程序中重新创建它,但我找不到与此描述完全匹配的框架。

假设每次我单击图表时,都会添加一条线。我想要发生的是,如果有人连续点击 100 次,它将等到点击完成后一次添加所有行,而不是一次添加一行。同样,调整窗口大小应该只重绘一次图表,而不是每次触发事件时。

我尝试过使用System.Reactive,但它们的大部分合并/节流似乎忽略了以前的调用,并且我不能OnCompleted()在事件上使用订阅的部分,因为它永远不会“完成”。

有没有人有解决这样的问题的经验?我正在寻找使用计时器来产生一种延迟,但我想知道是否已经有一些东西可以按照描述的方式工作。

0 投票
2 回答
269 浏览

xaml - 在我的像素着色器(UWP、Win2D)中支持多种颜色输入

我一直在开发一个可以提供颜色替换的应用程序,并且在解决方案上从 @Jet Chopper 那里得到了很多帮助。他为我提供了以下代码,该代码基本上使用 ControlSpectrum 控件来控制源颜色和目标颜色。这个想法是您指定一个源颜色,然后将其替换为目标颜色。这是当前的工作代码:

这是我的原始帖子,其中包含带有 GIF 的原始解决方案。 原帖

XAML:

代码:

像素着色器:

所以我的下一步是将这个解决方案向前推进一步,同时引入更多的颜色替换。所以我改变了一切以支持两种颜色:

我的改变

XAML:

代码:

像素着色器:

所以基本上我只是将 XAML、代码和像素着色器中的所有内容都翻了一番。但是对于像素着色器,我不确定通过将两个结果相乘我的返回值是否正确。我是否能够一次更换一种以上的颜色?

0 投票
1 回答
866 浏览

c# - 不支持的位图格式。字节数组到 SoftwareBitmap (UWP C#)

帮助无法将字节数组转换为 SoftwareBitmap。错误: 在此处输入图像描述

0 投票
1 回答
524 浏览

c# - Win2D:如何在可缩放的圆圈内绘制中心图像

我正在尝试在 c# 中使用 Win2D 在圆圈内绘制缩放图像,但我没有这样做。

我的尝试是例如:

发生的情况是图像似乎是在窗口的 X=0 和 Y=0 位置绘制的(画布使用所有窗口),所以我的圆圈在窗口的中间,然后只有一点图像被绘制我希望我的图像被放置在圆的中心。

所以问题是: - 我的规模是否正确完成?为什么要除以 96?我可以从系统中读取这个吗?- 是否可以只模糊图像的边缘?- 我怎样才能在圆圈的中心绘制我的图像?

谢谢

0 投票
2 回答
1162 浏览

win2d - Win2D 在 C++/WinRT 中是否可用?

我需要在我的 cppwinrt 项目中使用 win2D。使用 Win2D 示例文件作为模型,我试图模仿它的设置,从该项目中放入 win2d 的包文件,复制自定义构建步骤,但我无法编译它。我记得有人谈到 Win2D 很快就会添加到标准 cppwinrt 头文件中,以便可以像其他这些美妙的 cppwinrt 接口一样访问它。这是可能很快发生的事情吗?或者是否有人对在当前 Visual Studio 2017 环境中使用 Win2D 有一些非常具体的说明?我在 Insider 预览计划中,但没有看到任何内容。谢谢。

0 投票
1 回答
389 浏览

c# - 使用具有比例纵横比的 Win2D 调整图像大小

我的 UWP Win2D 应用程序出现问题。我在 CanvasAnimatedControl 中显示了一个图像和文本,当我调整窗口大小时,它会拉伸图像和文本而不是保持它们的比例:

在此处输入图像描述

这是加载和绘制图像的代码的一部分:

示例项目可以在这里下载:

项目链接

我需要更改什么以使图像和文本不会在调整大小时拉伸?

0 投票
2 回答
666 浏览

c# - 使用 Win2D,如何将图像裁剪为圆形

看起来这应该很简单,但我真的很难找到任何关于如何做到这一点的文档。我只是想裁剪图像以将正方形变成圆形。

有很多关于它的讨论,但我似乎找不到一个很好的例子来说明如何使用 UWP/Win2D 做到这一点。

这是一些代码来说明我在评论中试图描述的问题:

下图显示了如何根据要绘制目标圆的矢量从相同的 x/y 坐标切割画笔。

注意:FillEllipse() 也会产生同样的效果。

在此处输入图像描述

0 投票
0 回答
89 浏览

c# - 将字节数组传递给 PixelShaderEffect

我正在 C#/UWP/Win2D 应用程序中基于非标准像素格式的文件快速制作图像动画。图像之间存在相关性(想想翻书动画),但没有任何程序化。

我已经编写了一个原型,并在下面包含了相关代码。“白色”和“黑色”颜色最终将转换为颜色查找表(例如 5 = 白色)

性能很好~60FPS,FrameWidth/FrameHeight 为 512,但在 1024 时下降到~30FPS。任何比这更大的性能更差。

使用大数据对此进行分析表明,颜色数组的循环和 SetPixelColors 调用是瓶颈。

我尝试了几种方法来加快速度(PLINQ、Parallel.ForEach、数据预排队),但未能比上面找到的形式更快。

我相信处理这个问题的正确方法是为 CanvasRenderTarget 创建一种新的受支持类型的 DirectXPixelFormat,这样我就可以使用 SetPixelBytes。这似乎是不可能的。

下一个正确的选项似乎是编写一个接受 frameBytes 的 PixelShaderEffect,以灰度创建像素,然后将其用作另一个效果的来源来设置颜色。

我找不到任何创建 IGraphicsEffectSource 的示例。

任何建议、文档,或者最重要的是,一个有效的“这是您将字节数组传递到 PixelShaderEffect 的方式”将不胜感激。

0 投票
1 回答
148 浏览

uwp - 如何在 CanvasGeometry 上添加效果

在我看来,Win2D 中可用的所有效果都是用于绘制图像的。

怎么样CanvasGeometry?我如何绘制CanvasGeometry使用,比如说发光效果?

谢谢。