首页 > 编程语言 >【C#】【WriteableBitmap】保存图像到本地

【C#】【WriteableBitmap】保存图像到本地

时间:2024-05-20 11:41:31浏览次数:32  
标签:string C# wtbBmp WriteableBitmap result 图像 strDir strpath

/// <summary>
/// 保存图像到本地
/// </summary>
/// <param name="wtbBmp"></param>
/// <param name="name"></param>
/// <param name="strDir"></param>
/// <returns></returns>
public static string SaveBitmap(WriteableBitmap wtbBmp, string name, string strDir = "Picture\\")
{
    if (wtbBmp == null)
    {
        return null;
    }

    ushort channels = (ushort)(wtbBmp.BackBufferStride / wtbBmp.PixelWidth);
    if (channels == 3)
    {
        wtbBmp = ImageHelper.ConvertBitmap24To8(wtbBmp);
    }

    string result;
    try
    {
        BmpBitmapEncoder bitmapEncoder = new BmpBitmapEncoder();
        bitmapEncoder.Frames.Add(BitmapFrame.Create(wtbBmp));

        string strpath = strDir + name + ".bmp";

        if (!Directory.Exists(strDir))
        {
            Directory.CreateDirectory(strDir);
        }
        if (!File.Exists(strpath))
        {
            using (FileStream a = File.OpenWrite(strpath))
            {
                bitmapEncoder.Save(a);
                a.Close();
            }
        }
        else
        {
            DebugOutput.ProcessMessage($"图片保存失败 strpath: {strpath}");
        }
        result = strpath;
    }
    catch (Exception ex)
    {
        DebugOutput.ProcessMessage("图片保存失败:"+ ex);
        result = null;
    }
    return result;
}

标签:string,C#,wtbBmp,WriteableBitmap,result,图像,strDir,strpath
From: https://www.cnblogs.com/qiutian-hao/p/18201546

相关文章

  • docker - 离线安装docker
    下载#查看当前系统,选择所需的docker版本,重点区分x86和arm版本uname-a下载地址:https://download.docker.com/linux/static/stable/x86_64/流程概述安装过程跟安装mysql类似,操作步骤可以概括为:解压安装包,复制到特定目录/usr/bin;然后准备一个docker.service,复制......
  • Oracle ORA-06575: 程序包或函数WM_CONCAT处于无效状态
    ------OracleORA-06575:程序包或函数WM_CONCAT处于无效状态----失效原因:版本不支持,WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数,需要手工加上。--首先使用dba账号登录oracle数据库sqlplussys/sysassysdba--解锁wmsys用户(可以是你自己定义的......
  • CentOS7配置NFS服务并设置客户端自动挂载
    在CentOS7中配置NFS服务并设置客户端自动挂载的步骤如下:NFS服务端配置安装NFS服务:首先,你需要在CentOS7服务器上安装NFS服务。你可以使用yum命令来安装:yuminstallnfs-utils创建共享目录:创建一个你希望共享的目录,例如:mkdir-p/nfs/data编辑NFS配置文件:使用文本......
  • 【C#】WPF字典资源设置Button控件样式
    <ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Stylex:Key="BtnInfoStyle"TargetType="Button">......
  • 【C#】读取文件反序列化对应类
    ///<summary>///反序列化///</summary>///<paramname="filePath">文件路径</param>///<returns></returns>publicstaticList<T>JsonToList<T>(stringfilePath){stringjsonStr=File.ReadAllText(fi......
  • 和谷歌Google I/O杠上了,ChatGPT将具备通话功能
    在当今社会,人工智能技术的发展已经取得了巨大的成就,尤其是在语言领域。ChatGPT作为一种新型的自然语言处理模型,被广泛应用于各种领域,比如问答系统、智能对话系统等,其在对话生成方面的表现也十分出色。而随着技术的不断发展,有人开始猜测ChatGPT是否将来具备通话功能,这给人们带来了......
  • CSP历年复赛题-P1014 [NOIP1999 普及组] Cantor 表
    原题链接:https://www.luogu.com.cn/problem/P1014题意解读:根据z字形遍历,求第n个数。解题思路:根据题意,遍历顺序如下图所示观察得知,第i层的x/y的x+y=i+1,并且如果i是偶数,x从1开始枚举;如果i是奇数,x从i开始枚举100分代码:#include<bits/stdc++.h>usingnamespacestd;in......
  • 【C#】WriteableBitmap转Bitmap图像
    ///<summary>///WriteableBitmap转Bitmap图像///</summary>///<paramname="wBitmap"></param>///<returns></returns>publicstaticBitmapWriteableBitmapToBitmap(WriteableBitmapwBitmap){Bitmapbmp=newB......
  • [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......