c# - 如何将可写位图的一部分复制到另一个可写位图?

标签 c# writeablebitmap

如何将一个 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/

相关文章:

c# - WPF WriteableBitmap 到字节数组

c# - 对 WriteableBitmap 像素的更改不会更新屏幕

silverlight - 我可以使用 Silverlight 的 WriteableBitmap 将 UI 的不可见部分保存到位图吗?

c# - 用于在 System.Label 上准确放置文本的图形 DrawString

c# - .NET 查询生成器组件

c# - 下拉列表中的第一项根本不会触发 SelectedIndexChanged

c# - WriteableBitmap 内存泄漏?

c# - Alpha channel 无法按预期使用 WriteableBitmap

c# - 索引超出了 lambda 表达式 linq 中的数组边界

c# - 托管一个用 linux 编写的服务,并通过在 Windows 7 中运行的 C# 使用它