使用 WPF 将二进制文件检索回图像和数据库并保存到文件夹中

2024-03-10

我已成功将图像转换为二进制并使用 linq to sql WPF 将其保存到数据库中,现在我想将其检索回图像格式并将其保存到计算机中的特定文件夹中。

我读过很多博客和文章,它们从数据库检索图像二进制文件,然后将其显示到 PictureBox 中,我想要做的是选择图像并使用 linq to sql 将其保存到特定文件夹。

到目前为止我尝试上传图像的代码:

private void Browse_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.DefaultExt = ".jpg";
            ofd.Filter = "Image File (.jpg) | *.jpg";

            Nullable<bool> result = ofd.ShowDialog();

            if(result == true)
            {
                string fileName = ofd.FileName;
                _txtFileName.Text = fileName;
            }
        }

        private void Upload_Click(object sender, RoutedEventArgs e)
        {
            using(ImageDataContext db=new ImageDataContext())
            {
                image_data img = new image_data();

                img.image = ConverImageToBinary(_txtFileName.Text);

                try
                {
                    db.image_datas.InsertOnSubmit(img);
                    db.SubmitChanges();

                    MessageBox.Show("Picture Upload Successfully", "Success", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }

                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        public static byte[] ConverImageToBinary(string convertedImage)
        {
            try
            {
                FileStream fs = new FileStream(convertedImage, FileMode.Open, FileAccess.Read);

                BinaryReader br = new BinaryReader(fs);

                byte[] image = br.ReadBytes((int)fs.Length);

                br.Close();

                fs.Close();

                return image;
            }

            catch(Exception ex)
            {
                throw ex;//MessageBox.Show(ex.Message, "error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }

首先读取图像的代码非常复杂,您将其作为流打开并很好地读取所有字节。有一个方法可以完全做到这一点,因此您可以将整个 ConverImageToBinary 方法替换为

img.image = File.ReadAllBytes(_txtFileName.Text);

另外,您从未将任何内容“转换”为任何内容,图像只是磁盘上的字节数组,您已经读取了它,将其保存到数据库中,如果您将其读回并保存回来(这次使用 File.WriteAllBytes)它会工作得很好,所以

如果您想写入磁盘,只需将图像保存回磁盘,如下所示:

File.WriteAllBytes(@"d:\myfile.bmp",img.Image.ToArray()) ;

并确保更改扩展名以匹配您的文件类型(例如 bmp 表示位图 jpeg 表示 jpeg 等)

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

使用 WPF 将二进制文件检索回图像和数据库并保存到文件夹中 的相关文章

  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • 什么会阻止 Docker 容器中运行的代码连接到单独服务器上的数据库?

    我有一个在 Ubuntu 14 04 上的 Docker 容器中运行的 NET Core 1 1 应用程序 它无法连接到在单独服务器上运行的 SQL Server 数据库 错误是 未处理的异常 System Data SqlClient S
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 即使手动设置显示环境变量后,WSL Ubuntu 也会显示“错误:无法打开显示”

    我在 WSL Ubuntu 上使用 g 我使用 git 克隆了 GLFW 存储库 使用了ccmake命令配置并生成二进制文件 然后使用make在 build 目录中最终创建 a文件 我安装了所有OpenGL相关的库 usr ld 我不记得我
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 从 .eml 文件获取文本的最佳方法是什么?

    我尝试从本地驱动器上的几个 eml 文件获取主题和消息正文 现在我尝试使用 Apache Commons Email 但有时它会循环且没有错误 这是我的代码 它应该从 eml 获取文本并将其保存到 txt MimeMessage mimeM
  • 如何修复 x86 Turbo 汇编语言的输出

    DOSSEG MODEL SMALL STACK 100h DATA UserName db Name CLRF db 10 13 inputName db 24 dup CurYear db Current Year inputCurre
  • GWT java.util.Date 序列化错误

    GWT 无法正确序列化 Java 日期 当我尝试通过网络发送用 Javascript 创建的日期时 我发现 1983 年之前的年份中 4 月 1 日 有趣 到 10 月 25 日之间的日期会减去一天 这意味着 例如 1982 04 01 和
  • Databricks 删除增量表?

    如何在 Databricks 中删除增量表 我在文档中找不到任何信息 也许唯一的解决方案是使用 magic 命令或 dbutils 删除文件夹 delta 内的文件 fs rm r delta mytable EDIT 为了澄清起见 我在这
  • 如何在 Mobile Safari 中检测 3G 与 Wifi 连接?

    我特别询问的是移动网页上的 javascript 而不是 Objective C 应用程序 是否有像 Apple Reachability for javascript 这样的东西 以便我可以知道 Edge 3G 或 Wifi 连接何时建立
  • 如何从 cognito 异步函数返回响应并将其显示在页面上?

    给出下面的代码 当响应成功或失败时 如何将响应输出回网页 loginUser data var authenticationData Username data email Password data password var authen
  • ConfigParser - 打印 config.sections() 返回 []

    我正在尝试使用ConfigParser模块来解析 ini文件 问题是当我尝试打印时sections或者其他什么 它返回空列表 配置文件 SERVER host localhost port 9999 max clients 5 REGULA
  • 如何在 Android NDK 中创建新的 NativeWindow?

    我尝试了 test libstdc 演示 并且喜欢我可以从控制台启动它 而无需运行成熟的 Android 应用程序 我想创建一个 opengl 上下文 以便我能够从控制台内执行我的 opengl es 2 0 应用程序 而无需太多麻烦 知道
  • Distutils:构建多个共享方法的 Python 扩展模块(用 Swig 编写)

    我有四个 C 文件 A h A cpp B h B cpp A h 包含在 B cpp 中 A h pragma once void A A cpp include
  • 以编程方式创建选择列表

    有谁知道使用 JQuery 以编程方式创建包含选项的 HTML 选择列表的技术 var arr val 1 text One val 2 text Two val 3 text Three var sel
  • Redis serviceStack池化连接客户端

    我正在设计一个使用 Redis 作为数据库的 Web 服务 我想了解使用 Redis 与 StackService 客户端连接的最佳实践 重点是 我一直在阅读有关 Redis 的内容 并且发现与服务器交互的最佳方式是使用单个并发连接 问题是
  • 使用 Firebase 进行数据库式查询

    有没有一种快速的方法可以使用 Firebase 执行数据库式查询 例如 给出 firebase 参考users有字段user id name and age 执行与此类似的查询的最佳方法是什么 SELECT name FROM users
  • 如何处理原始数据(用Python)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我没有很好地解释这一点 所以希望这个编辑更有意义 基本上我必须编写适用于大量测试用例的代码 下面的输入只是一个示例 所以我无法手动将输入输
  • Angular 2 - 当(observableData | async)尚未解析时显示加载信息

    正如标题所说 我想拥抱 rxjs Observables 的力量 我现在应该做什么 dataview html div Loading data div gt ul li d value li ul dataview ts data any
  • AutoFixture 2 With() 无法像 AutoFixture 1 中那样工作?

    我正在将我的测试移植到自动夹具2 0 http autofixture codeplex com 我遇到了一些奇怪的行为 我既无法解释也无法修复 这个简单的测试对我来说失败了 var autoFixtures new Fixture var
  • Silverlight 控件由于命令而未被垃圾回收

    我的控制之所以能保持活力 是因为它必须服从命令 我怎样才能打破这个参考 这导致我的应用程序中出现严重的内存泄漏 该控件位于 DataTemplate 内部 因此我无法直接访问它 这是我的 ANTS 内存配置文件 我到底该如何断开这种连接 虽
  • 有没有办法通过为每个测试打开浏览器实例来并行运行量角器测试?

    我的量角器测试面临同步问题 我想与我的实际设置相比并行运行我的测试 事实上 目前我的测试一个接一个地运行 我知道如何使用 TestsNG 执行此操作 但不确定如何使用 Jasmin Framework 执行此操作 要在两个浏览器之间分配测试
  • IDEA Groovy 测试类已经存在

    IDEA 向我的 groovy 类发出警告 类 MyClassTest 已存在于 my class package 中 当我运行测试时 它似乎也没有很好地保持类的更新 我将添加一个保证失败或成功的断言 直到稍后它才会识别它 到目前为止似乎是
  • 确定 Java 中的有效日期

    我有一个家庭作业 要求用户以 mm dd yyyy 格式在 Java 中输入日期 然后确定输入的日期是否有效 我已经能够成功地对每个月 除了二月 执行此操作 因为您必须考虑闰年 我有这个代码 import java util Scanner
  • 使用 WPF 将二进制文件检索回图像和数据库并保存到文件夹中

    我已成功将图像转换为二进制并使用 linq to sql WPF 将其保存到数据库中 现在我想将其检索回图像格式并将其保存到计算机中的特定文件夹中 我读过很多博客和文章 它们从数据库检索图像二进制文件 然后将其显示到 PictureBox