从一张图像复制 ROI 并复制到 wpf 中的另一张图像

2024-06-18

我想开发一个具有以下签名的函数:

 CopyImage(ImageSource inputImage, Point inTopLeft, Point InBottomRight, ImageSource outputImage, Point outTopLeft);

该函数复制输入图像的一部分(由inTopLeft和inBottomRight定义的ROI)并将其复制到outTopLeft处的outputImage。

我可以在 WPF 中通过操作像素来完成此操作,但我正在寻找一种可以更快完成此操作的解决方案。

在 WPF 中执行此操作最快的方法是什么?


您的方法可能如下所示:

private BitmapSource CopyRegion(
    BitmapSource sourceBitmap, Int32Rect sourceRect,
    BitmapSource targetBitmap, int targetX, int targetY)
{
    if (sourceBitmap.Format != targetBitmap.Format)
    {
        throw new ArgumentException(
            "Source and target bitmap must have the same PixelFormat.");
    }

    var bytesPerPixel = (sourceBitmap.Format.BitsPerPixel + 7) / 8;
    var stride = bytesPerPixel * sourceRect.Width;
    var pixelBuffer = new byte[stride * sourceRect.Height];
    sourceBitmap.CopyPixels(sourceRect, pixelBuffer, stride, 0);

    var outputBitmap = new WriteableBitmap(targetBitmap);
    sourceRect.X = targetX;
    sourceRect.Y = targetY;
    outputBitmap.WritePixels(sourceRect, pixelBuffer, stride, 0);

    return outputBitmap;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从一张图像复制 ROI 并复制到 wpf 中的另一张图像 的相关文章

随机推荐

  • 如何从 asp.net MVC 4 应用程序中的 FileResult 方法返回错误消息?

    我在 asp net mvc4 中有一个 fileresult 方法 它返回 Excel 文件中的报告 现在 如果不满足我的条件 我如何从该方法返回错误消息 既然我们只能从这个方法返回一个文件 谢谢 您可以将操作方法 的签名更改为publi
  • 如何将docker postgres镜像10.3中的pg_restore升级到10.5

    我使用 tableplus 作为我的一般管理员 目前使用 10 3 版本的 docker postgres 镜像进行生产和本地主机开发 因为tableplus将他们的postgres 10驱动程序升级到了10 5 所以我不能再使用pg re
  • 是什么导致 WPF 打印机输出被光栅化?

    我在 WPF 中遇到了许多打印问题 其中正在打印的特定项目组合会突然触发打印机输出的光栅化 导致打印机输出丑陋且庞大 并可能导致打印每页需要 30 秒 我发现在控件上设置任何级别的不透明度之类的事情通常会触发此问题 我忘记了它还有什么作用
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • Pandas系列矢量化文本处理

    我想使用矢量化操作改进我的 Pandas 代码 假设我有一个简单的 DataFrame 其中有一个文本列 其中可能包含 url Column1 0 hello http www google com 1 bye www mail com w
  • C# 以编程方式设置 azure 函数时间触发器

    我想编写一个在时间触发器上工作的 C Azure 函数 其中计划是可变的 即每个函数运行将确定下一次运行的时间 因此应该能够更改下一个触发器的计划时间 您可以使用带有队列输出的队列触发器 这要归功于NextVisibleTime https
  • 如何从 RSS feed 中获取图像

    我正在尝试从 URL 获取 RSS 新闻http timesofindia indiatimes com rssfeeds 1945062111 cms http timesofindia indiatimes com rssfeeds 1
  • 如何使用列表理解从列表中删除重复的项目? [复制]

    这个问题在这里已经有答案了 如何使用列表理解从列表中删除重复的项目 我有以下代码 a 1 2 3 3 5 9 6 2 8 5 2 3 5 7 3 5 8 b b item for item in a if item not in b 但它不
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • 如何在 JAVA servlet 中处理压缩 (gzip) HTTP 请求(不是响应) - 简单示例?

    我为这个问题苦苦挣扎了很长一段时间 在找到一个简单的解决方案后 想问一个问题和答案 这个问题在堆栈溢出时以不同的方式被多次提出 并且accepted solutions是partially correct and complex或谈论res
  • 如何在 React 组件中使用 CDN

    我正在尝试使用基于 D3 构建的库 称为 Greuler 来动态渲染图形 它的 npm 包似乎已损坏 当我改用 Greuler CDN 时 index html 中的测试图终于起作用了 但是 我正在开发一个 React 应用程序 并且我希望
  • 如何获取一个类的所有实例

    我是一名初学者 正在学习 Python 我想创建一个课程Person 在构造函数中 我想将我创建的每个实例放入一个名为 实例 的集合中 然后我希望实例 方法返回所有实例 我怎样才能做到这一点 class Person Type annota
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For
  • 如何在R中得到一个大的稀疏矩阵? (> 2^31-1)

    我使用一些 C 代码从数据库中获取文本文件 并从该文件创建 dgcMatrix 类型稀疏矩阵Matrix包裹 我第一次尝试构建一个具有超过 2 31 1 个非稀疏成员的矩阵 这意味着稀疏矩阵对象中的索引向量也必须比该限制长 不幸的是 向量似
  • 如何使用开发板上的加密处理器?

    在数据表上 SoM 配备了 ATECC608A 加密协处理器 但没有有关如何使用它的文档 该硬件是否有一些用例以及有关如何使用它的说明 该库包含在 Coral Cloud 存储库中 它通常与 Coral cloudiot 包 python3
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • 为什么 Java 类加载器找不到我的接口?

    在下面的代码中 我使用动态生成一个类sun tools javac Main 我将使用反射创建此类的新实例 问题是 我想避免使用 Reflection 来调用我为此类定义的方法 因此我创建了一个 ProxyInvoker 来引用我在项目中定
  • 如何清理文本中未对齐的列?

    我有一个 C 程序 它输出两列 完全不对齐 未对齐的原因是第一列中单词的长度差异很大 我有一个在 vi 中打开的输出文件 如何快速对齐这两列 我可以使用 awk perl sed 而不仅仅是 vi 7 2 工具集 另外 我们是否可以为具有两
  • 此代码签名证书对于签名小程序有效吗?

    我们购买了代码签名证书来签名小程序 但在签名小程序时出现以下错误 C CM WEB INF gt jarsigner keystore code signing keystore C CM SweetApplet jar code sign
  • 从一张图像复制 ROI 并复制到 wpf 中的另一张图像

    我想开发一个具有以下签名的函数 CopyImage ImageSource inputImage Point inTopLeft Point InBottomRight ImageSource outputImage Point outTo