Windows runtime 用填充物修剪

Windows runtime 用填充物修剪,windows-runtime,writeablebitmap,writeablebitmapex,Windows Runtime,Writeablebitmap,Writeablebitmapex,我需要裁剪一幅图像,指定可能超出图像边界的坐标。如果坐标处于禁用状态,则应用适当的填充 通常: +===============+ | Source Bitmap | | +-------+ | | + Crop + | | +-------+ | | | +===============+ …它与WriteableBitmapEx的Crop()扩展完美结合。但就我而言: +-----------+ + Crop + +

我需要裁剪一幅图像,指定可能超出图像边界的坐标。如果坐标处于禁用状态,则应用适当的填充

通常:

+===============+
| Source Bitmap |
|   +-------+   |
|   + Crop  +   |
|   +-------+   |
|               |
+===============+
…它与WriteableBitmapEx的
Crop()
扩展完美结合。但就我而言:

+-----------+
+ Crop      +
+           +
+ +===============+
+ | Source Bitmap |
+ |               |
+ +===============+
+           +
+-----------+
在这种情况下,边界超出顶部、左侧和底部。生成的位图需要是:

+-----------+
+           +
+           +
+ +=========+
+ |         + 
+ |         +
+ +=========+
+           +
+-----------+

实现这一点的最佳(最快)方法是什么?

最简单的方法是使用最终结果的维度创建一个新的WB,然后使用Blit()方法将源区域复制到新目标位图的区域


不错的ASCII艺术工作(顺便说一句):)

这正是我所期望的。出于某种原因,在我的测试期间,blitting会导致AccessViolationException,但这很可能与其他原因有关。谢谢!:-)这很可能是因为您提供的坐标超出了WB的边界。WB正是该点(必须填充)。这似乎是WriteableBitmapEx的问题,因为Clone()方法生成相同的异常(未指定边界)。切换到WinRTXAMLToolkit的Copy()不会产生相同的问题。实际上,我必须先使用Copy(),然后使用Blit()。请提供一个复制解决方案,在那里我可以看到行为并将其上传到某个地方。我很乐意帮助你,但不能在这里重做。没关系。你已经回答了我的问题。我刚才提到了一个问题,这使我怀疑我所采取的方法是否是错误的。