如何将一个 WriteableBitmap
的一部分复制到另一个 WriteableBitmap
?我过去编写并使用过数十个“copypixel”和透明副本,但我似乎找不到 WPF C# 的等效项。
这要么是世界上最难的问题,要么是最简单的问题,因为绝对没有人会用十英尺长的杆子碰它。
最佳答案
使用来自 http://writeablebitmapex.codeplex.com/ 的 WriteableBitmapEx 然后使用如下所示的 Blit 方法。
private WriteableBitmap bSave;
private WriteableBitmap bBase;
private void test()
{
bSave = BitmapFactory.New(200, 200); //your destination
bBase = BitmapFactory.New(200, 200); //your source
//here paint something on either bitmap.
Rect rec = new Rect(0, 0, 199, 199);
using (bSave.GetBitmapContext())
{
using (bBase.GetBitmapContext())
{
bSave.Blit(rec, bBase, rec, WriteableBitmapExtensions.BlendMode.Additive);
}
}
}
如果您不需要在目标中保留任何信息,则可以使用 BlendMode.None 以获得更高的性能。使用 Additive 时,您可以在源和目标之间进行 alpha 合成。
关于c# - 如何将可写位图的一部分复制到另一个可写位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750310/