首页 > 编程语言 >【C#】WriteableBitmap转Bitmap图像

【C#】WriteableBitmap转Bitmap图像

时间:2024-05-20 11:29:18浏览次数:28  
标签:wBitmap C# WriteableBitmap int bmp new Bitmap

/// <summary>
/// WriteableBitmap转Bitmap图像
/// </summary>
/// <param name="wBitmap"></param>
/// <returns></returns>
public static Bitmap WriteableBitmapToBitmap(WriteableBitmap wBitmap)
{
  Bitmap bmp = new Bitmap(wBitmap.PixelWidth, wBitmap.PixelHeight);
  int rPixelBytes = wBitmap.BackBufferStride * wBitmap.PixelHeight;   //字节数,计算方式是幅宽乘以高度像素
  //注意,像素格式根据实际情况
  BitmapData data = bmp.LockBits(new System.Drawing.Rectangle(0, 0, wBitmap.PixelWidth, wBitmap.PixelHeight), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  wBitmap.Lock();

  unsafe
  {
      Buffer.MemoryCopy(wBitmap.BackBuffer.ToPointer(), data.Scan0.ToPointer(), rPixelBytes, rPixelBytes);
  }
  //Buffer.MemoryCopy需要在.net 4.6版本或更高版本上才可以使用,.net4.5不存在该方法。
  wBitmap.AddDirtyRect(new Int32Rect(0, 0, (int)wBitmap.Width, (int)wBitmap.Height));
  wBitmap.Unlock();
  bmp.UnlockBits(data);
  return bmp;
}

标签:wBitmap,C#,WriteableBitmap,int,bmp,new,Bitmap
From: https://www.cnblogs.com/qiutian-hao/p/18201531

相关文章

  • [998] Python unpacking operators (* and **)
    ref:Pythonunpackingoperators(*and**)(RECOMMENDED)ref:PythonFunctionsref:PythonUnpackDictionary:AComprehensiveGuideHerearesomecrucialthingsfortake-awayofthe unpackingoperators:Asingleasterisk * unpacksitemsfromlists,tupl......
  • Arch Linux CN Community repo mirrors list
    kate /etc/pacman.conf/etc/pacman.d/mirrorlist ##Ourmainserver(Amsterdam,theNetherlands)(ipv4,ipv6,http,https)[archlinuxcn]Server=https://repo.archlinuxcn.org/$arch ##CERNET(中国)(ipv4,ipv6,http,https)##Added:2023-08-19##Thiswill......
  • etcd 和 MongoDB 的混沌(故障注入)测试方法
    最近在对一些自建的数据库driver/client基础库的健壮性做混沌(故障)测试,去验证了解业务的故障处理机制和恢复时长.主要涉及到了MongoDB和etcd这两个基础组件.本文会介绍下相关的测试方法.MongoDB中的故障测试MongoDB是比较世界上热门的文档型数据库,支持ACID事务......
  • 多个CPU--多核--核心线程数​理解
    今天在创建简单线程池时,使用Runtime.getRuntime().availableProcessors()有些不懂网上这么配置的理由,百度说是计算资源(逻辑核心数)与CPU有关,但是和CPU具体啥关系还是一知半解,今天通过看资料,整理一下我的理解。importcom.google.common.util.concurrent.ThreadFactoryBuild......
  • mongo replicaset=rs0 com.mongodb.MongoSocketException: centosc
    1、描述虚拟机搭建mongo副本集虚拟机的设定的hostname为: centosc。虚拟机IP为192.168.25.129搭建三个副本集端口分别为,28017、28018、28019,运行mongo副本集报错,报错信息如下:2024-05-2010:22:39:235[main]INFOorg.apache.coyote.http11.Http11NioProtocol-StartingProtocol......
  • ABC354 E - Remove Pairs 做题笔记
    ABC354E-RemovePairs做题笔记题目链接对于这种带有博弈论的dp,考虑这样设计状态:令\(f_s\in\{1,0\}\)表示“游戏局面”为\(s\)时,先手必胜还是必败。本题中,“游戏局面”可以表示为剩余卡牌的编号集合。又因为本题中\(N\)​很小,通过状压,可以直接用一个int表示游戏......
  • conda使用指南
    Python与Conda:简单、便捷的包管理工具Python作为一门流行的编程语言,在数据分析、机器学习和深度学习等领域得到了广泛应用。然而,Python的库众多,版本繁多,所以在库的安装和版本管理上可能存在困难。为解决这一问题,我们可以借助Conda这一方便易用的包管理工具。安装Anaconda首先......
  • CGCL论文阅读笔记
    Candidate–awareGraphContrastiveLearningforRecommendation论文阅读笔记Abstract现存问题:​ 大多数基于gcl的方法使用启发式数据增强方法,即随机节点/边下降和属性掩蔽,来构造对比对,导致重要信息的丢失。解决方案:​ 为了解决基于gcl的方法中的问题,我们提出了一种新的方......
  • [ARC178C] Sum of Abs 2 题解
    题意:给定\(n\)和\(L\)以及\(n\)个数\(a_i\)。对于每个\(1\lei\len\),求出一个长度为\(L\)的\(b\)序列满足:\(\sum_{i=1}^{L-1}\sum_{j=i+1}^{L}|b_j-b_i|=a_i\),并最小化\(b\)中的最大值。显然\(b\)中元素的顺序不影响原式的结果,所以我们可以假定\(b\)是不......
  • Skipping invalid relocation target,
      [55.732900]module:x86/modules:Skippinginvalidrelocationtarget,existingvalueisnonzerofortype1,loc0000000095d22a08,valffffffffc07aa525root@ubuntux86:#uname-aLinuxubuntux865.13.0-39-generic#44~20.04.1-UbuntuSMPThuMar2416:......