问题标签 [writeablebitmapex]
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.
c# - 使用 WriteableBitmapEx 实时绘制一组流畅的圆
我有一个 WriteableBitmap 对象,我将 .jpg 图像加载到该对象中并将其显示在图像控件中。现在我希望能够让用户用一个半透明的小刷子在该图像上绘图。
现在我正在处理 MouseDown 和 MouseMove 事件,以便在鼠标在图像上的坐标每次变化时绘制一个半透明的小圆圈:
不过,这显然刷新得不够快 - 给我留下了一组点(除非用户移动鼠标非常非常慢)。
我的临时解决方案是从一个点画线到另一个点,并在每个 MouseMove 事件上更新两个点 - 曲线是一致的,但只有一个像素宽,看起来不太好。
我解决这个问题的最佳方法是什么?
c# - WriteableBitmap(Ex) 与 DrawingContext 的性能
我正在 WPF 中构建一个自定义 UI 框架,我基本上尽可能多地抛弃内置布局系统和控件。到目前为止,我一直在UIElement
直接分支,但由于我已经在进行测量、安排和渲染自己,我想我可以通过“更接近金属”(尤其是当它来布局/渲染)。留在托管代码中并且不害怕自己做肮脏的工作时有多接近?
我现在正在玩弄一个原型概念,我只有一个从 UIElement 继承的元素:一个Root
对象,类似于一个剥离的对象Canvas
,它“托管”我的布局引擎的其余部分并将相关的IInputElement
好处引入其中。从那时起,所有元素都将是完全自定义的对象,不继承自 WPF 中的任何内容,而是直接呈现到DrawingContext
Root 中(在其OnRender
方法中)。
现在我想知道拥有一个根元素并手动绘制它的相对性能,例如为了方便WriteableBitmap
使用WriteableBitmapEx 。没有抗锯齿不是问题,自定义命中测试系统也不是问题。
我的想法主要是 WriteableBitmap(Ex) 没有任何 GPU 加速增益的特权,因此当需要重新绘制/转换大面积区域时会[非常]慢。
不过,我确实对“引擎中的基于像素的渲染引擎”有其他需求,因此我仍然对此感兴趣。
有什么见解吗?
编辑:在这种情况下,SharpDX 呢?也许一旦我这样做了,我还不如去使用像 SharpDX 这样的 DirectX 包装器的 WinForms 解决方案(..or.. 我想我真正应该做的是注册整个 C++ enchilada,但不幸的是我没有有时间在事情中开始学习)..
c# - 如何在 Windows Store 应用和 C# 中裁剪 WriteableBitmap 的旋转部分
在 Windows 应用商店应用程序中,我想裁剪 WriteableBitmap 的旋转矩形部分,如下图中的案例 2。
- 我有矩形的 P0、宽度、高度和 P1 和旋转角度。
- 旋转基于每个矩形的中心
我正在使用WriteableBitmapEx.WinRT中提供的 Crop 扩展方法进行裁剪。
在案例 1 中,我正在执行以下操作:
但是当轮换到位时,我不知道应该应用什么计算来像案例 2 那样进行裁剪。
你们中有人愿意帮忙吗?
谢谢!
c# - Alpha 通道无法按预期使用 WriteableBitmap
我当前的代码是将一个小的 Pbgra32 位图粘贴到一个更大的 Pbgra32 位图上。工作正常。我现在想做的是使那个较小的部分透明。为此,在 blit 之前,我将较小的一个传递给一个方法,该方法应该编辑每个像素,方法是单独保留 RGB 值,同时将 0x7F 写入每个像素的 A 值。
然而,我得到的不是 50% 透明的图像,而是一个灰色的正方形。我究竟做错了什么?
c# - WriteableBitmap.Lock() 抛出 AccessViolationException
好的,所以我有一个通过 WriteableBitmapEx 开源库大量使用 WriteableBitmap 的应用程序。有时,调用 WriteableBitmap.Lock() 很少(并且不确定导致的确切条件)会引发 AccessViolationException。
.Lock() 的调用代码仅在位图尚未被锁定时才会锁定位图。许多锁定/解锁可以快速连续调用,但绝不会在模式 lock-lock-unlock 中调用,只有 lock-unlock-lock-unlock。我可以确认
任何想法是什么原因造成的?MSDN上似乎没有任何内容表明 WriteableBitmap.Lock() 应该抛出 AccessViolationException!
c# - 提高 WriteableBitmap 性能
我正在做一个项目,我需要每毫秒绘制N
一次椭圆,where和.X
0 <= N <= 10^5
5 <= X <= 500
我开始使用 WPF,以及它的相关控件,例如Canvas
用于视口的Ellipse
控件和用于椭圆的控件。我将省略号存储在一个列表中,并且:
- 每次椭圆的数量增加时,我都会在列表中添加一个新的椭圆。
- 每次存储的椭圆数
myViewport.Children
少于myListOfEllipses.Count
我将这些椭圆添加到我的视口时,我都会从视口中删除多余的椭圆而不将它们从我的列表中删除。 - 对于每个椭圆,我计算新位置并使用
Canvas.SetLeft
andCanvas.SetTop
方法。
性能相当不错,但是X
设置为最小值N
大于1000时会出现减速。
我考虑过使用DrawingVisual
s,但我认为绘制和显示位图也更快。因此,我决定将我的视口替换为具有和使用库的Image
控件。Source
WriteableBitmap
WriteableBitmapEx
- 每次我使用
myBitmap.Clear(Colors.White)
. - 每次我使用
myBitmap.FillEllipse(...)
.
好吧,问题是后一种方式比前者慢得多。这怎么可能?我哪里错了?如何提高位图的性能?
c# - 在 windows phone 上模糊图像
我正在使用 WriteableBitmapEX 库试图在 Windows Phone 8 上模糊位图图像 我试过这段代码
但是在该行有一个例外“对象引用未设置为对象的实例”WriteableBitmap wbm = new WriteableBitmap(img1);
为什么这不起作用?
windows-8 - How to save a grid as a bitmap Image in the local storage in windows 8
I am very new to Windows 8 application development. I am developing an application which requires to save a grid as Bitmap Image in local storage. I have tried by using writable bitmap but i didn't get the solution.
Then I searched for the samples but I got the answer as a 'Not possible'. But in some answers I found that By using 'WriteableBitmapEx' we can do that. But I do not know how to implement this by using this library. If any one knows about that please reply me.
Thanks in advance.
EDITED.
C# code.
image - 如何在 Windows Phone 8 应用程序中调整图像大小?
如何在不损失质量的情况下使用 C# 在 windows phone 8.0 应用程序中调整图像大小并显示完整图像
我做了什么,
我的 XAML 代码:
我的 C# 代码
原图图片实际大小为38MB,尺寸10240x6400,高:10240,宽:6400
我得到的结果如下图
windows-runtime - 如何在 WinRT 中使用 WriteableBitmapEx 从图像中的点获取像素颜色?
我正在将我当前的 (Silverlight) WP8.0 应用程序移植到通用 Windows 应用程序。在这个应用程序中,我有一个控件,允许用户使用自定义拨号控件。当表盘停止时,应用程序应该从该特定点(和底层图像)获取像素颜色。
在 WP8.0 中,我曾经这样做过:
ColorWheelImage 在 XAML 中。
在 WinRT 中,WriteableBitmap 仅支持new WriteableBitmap(int pixelWidth, int pixelWidth)
而不像 Silverlight 中那样设置图像。
我该如何解决这个问题..我似乎无法弄清楚:(!
谢谢,尼尔斯