c# mysql 二进制图片_C#将image中的显示的图片转换成二进制

2023-11-12

1.将Image图像文件存入到数据库中

我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

//将本地图片转换成二进制保存起来

private byte[] SetImageToByteArray(stringfileName)

{

FileStream fs= null;try{

fs= newFileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);

Bitmap bt= newBitmap(fs);int streamLength = (int)fs.Length;byte[] image = new byte[streamLength];

fs.Read(image,0, streamLength);returnimage;

}catch(Exception)

{throw;

}finally{

fs.Close();

}

}

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

//根据文件名(完全路径)public byte[] SetImageToByteArray(string fileName)

{

FileStream fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);

int streamLength = (int)fs.Length;

byte[] image = new byte[streamLength];

fs.Read(image, 0, streamLength);

fs.Close();

return image;

}

//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法public byte[] SetImageToByteArray(FileUpload FileUpload1)

{

Stream stream = FileUpload1.PostedFile.InputStream;

byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];

stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);

stream.Close();

return photo;

}

2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

//将数据库中的Image类型转换成byte[]        public byte[] SetImage(SqlDataReader reader)

{

return (byte[])reader["Image"];//Image为数据库中存放Image类型字段        }

//将byte[]转换成Image图像类型//加载以下命名空间using System.Drawing;/using System.IO;using System.Data.SqlClient;

public Image SetByteToImage(byte[] mybyte)

{

Image image;

MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);

image = Image.FromStream(mymemorystream);

return image;

}

这种方式保存图片比较安全

大致的步骤,就是我们首先要获得文件的路径,无论是通过上传控件和文本框,还是手动输入等,只要能获得路径就可以了

然后我们就可以利用上面的方法,将文件资源转换为二进制放到数据库里,数据库字段可以使用image类型,或者字符串,到时候转换下就可以了

最后我们就可以从数据库中读取字节,转换成image,或者以流的方式输出图片都可以了(这种一般用于asp.net输入图片)

asp.net输入流的代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

protected void Page_Load(object sender, EventArgs e)

{

byte[] bb = SetImageToByteArray("E:\\regedit.jpg");

System.Drawing.Image img = ReturnPhoto(bb);

//设定输出文件的类型            Response.ContentType = "image/jpg";

//输出图片文件二进制数据            Response.BinaryWrite(bb);

}

如果是winForm就可以直接通过转换过的image赋值就可以了

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

byte[] bb = SetImageToByteArray(textBox1.Text);

System.Drawing.Image img = ReturnPhoto(bb);

pictureBox1.Image = img;

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

c# mysql 二进制图片_C#将image中的显示的图片转换成二进制 的相关文章

  • Flink on Zeppelin-1

    准备工作 下载Zeppelin 0 9 0 preview1 或者下载 除了下载Flink的标准release 如果你要使用Flink on Yarn模式或者连接Hive 那么你还需要下载其他Flink组件 flink hadoop com
  • AutoGPT太火了,无需人类插手自主完成任务,ChatGPT 已经过时了?

    转载自 机器之心Pro 原文链接 AutoGPT太火了 无需人类插手自主完成任务 GitHub2 7万星 OpenAI 的 Andrej Karpathy 都大力宣传 认为 AutoGPT 是 prompt 工程的下一个前沿 近日 AI 界
  • Vue3 解决电脑分辨率及缩放导致页面变形的问题

    Vue3 解决电脑分辨率不同导致的页面变形问题 前言 电脑缩放问题解决 屏幕分辨率问题解决 前言 最近在做一个项目 突然发现由于调整电脑的分辨率导致页面变形的问题 正常电脑显示的是100 当调整电脑缩放至125 时 页面发生变形 由于css
  • springboot相关图形

    一 springboot的需求调研 需求分析 即应用场景 开发中如果使用spring springmvc spring集成第三方框架 如springmvc mybatis等 都需要编写大量的xml配置文件 二 框架的设计思想 不需要配置文件
  • Apache Kafka Deep 解析

    1 首先了解主题 经纪人 生产者和消费者等主要术语 下图说明了主要术语 表格详细描述了图表组件 在上图中 主题配置为三个分区 分区1具有两个偏移因子0和1 分区2具有四个偏移因子0 1 2和3 分区3具有一个偏移因子0 副本的id与承载它的
  • c++输出爱心小程序

    输入数值可以得到不同大小的爱心形状 include
  • STM32——FATFS文件基础知识

    一 探索者STM32开发板 通过底面的SD卡接口与SD卡连接 硬件连接原理图 PC8 9 11分时 二 SD卡驱动代码 1 SD Init初始化函数 2 SD ReadDisk读函数 3 SD WriteDisk写函数 1 文件系统是什么
  • @RequestHeader注解详解

    SpringMVC提供了 RequestHeader注解 可以将请求头中变量值映射到控制器的参数中 如下例子 将请求头中的变量值token映射到控制器参数token中 GetMapping checkUserLoginInfo public
  • Linux骚操作第十七话之PAM验证、sudo和开关机控制等

    文章目录 前言 一 PAM安全认证流程 二 提权 三 开关机安全控制 四 系统弱口令检测 五 网络端口扫描 总结 前言 在工作环境中 一些用户的权限都是由root系统管理员通过sudo放权给予 这样做的好处是防止某些用户存在故意之心 破坏系
  • Git:利用Git进行多人协作的场景模拟

    文章目录 场景一 场景二 解决一些后续问题 场景一 Git是一个多人协作下完成的操作 因此Git是需要进行一些多人协作的场景的 那么这里就使用Linux和Windows两个平台进行模拟实现两个用户进行的协作 首先把仓库克隆到本地 再加入两个
  • LVGL学习笔记 21 - 图像Image

    目录 1 图像来源 1 1 图片源文件 1 2 颜色格式 1 2 1 LV IMG CF ALPHA 1 2 4 8BIT 1 2 2 LV IMG CF INDEXED 1 2 4 8BIT 1 2 3 LV IMG CF RAW ALP
  • Wireshark基础使用,SSL解密及http抓包入门教程

    Wireshark VS Fiddler Charles 一 下载与安装 二 抓取https等解密 三 报文传输各层简要介绍 Wireshark VS Fiddler Charles Wireshark功能很多 作用效果很底层 并且可以监听
  • 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码 反码和补码 并且进行了深入探求了为何要使用反码和补码 以及更进一步的论证了为何可以用反码 补码的加法计算原码的减法 论证部分如有不对的地方请各位牛人帮忙指正 希望本文对大家学习计算机基础有所帮助 一 机器数和真值
  • 人工智能数学基础--导数2:高阶导数及莱布尼茨(Leibniz)公式

    一 定义 一般地 函数y f x 的导数y f x 仍然是x的函数 我们把y f x 的导数叫做函数y f x 的二阶导数 记作y 或 即 相应地 把y f x 的导数f x 叫做函数y f x 的一阶导数 类似地 二阶导数的导数叫做三阶导
  • 新一代CTO修炼之路all-in-AI系列-大数据+AI人工智能驱动技术变革之大数据部门组织架构及团队建设

    文章目录 1 2 1大数据部门组织架构 1 大数据平台组 2 算法组 3 数据分析组 4 更细化的大数据部门划分 总结 随着大数据和人工智能技术的火热发展 传统的老一代CTO 除了有过硬的工程能力外 尚需充电学习大数据和AI人工智能技术 大
  • Qt6教程之三(2) QT使用qss

    QSS是Qt Style Sheets的缩写 中文含义是Qt样式表 它用来自定义控件外观的机制 QSS与网页中使用的CSS非常相似 可以把QSS看作是CSS在Qt领域领域的定制版本 QSS的语法规则 选择器 规则定义1 规则2 规则n 如下
  • Docker Swarm 创建服务

    Docker Swarm 创建服务 环境 系统 Centos 7 4 x64 应用版本 Docker 18 09 0 管理节点 192 168 1 79 工作节点 192 168 1 78 工作节点 192 168 1 77 1 管理节点
  • LeetCode 1800. 最大升序子数组和

    题目链接 https leetcode cn problems maximum ascending subarray sum 时间复杂度为 O n O n O n 空间复杂度为 O

随机推荐

  • 大学生科技创意大赛查新报告

    大学生科技创意大赛是什么 太多种类分不清 快来看 大学生科技创意大赛需要查新怎么办 去哪儿能办 大学生科技创意大赛的查新需要准备什么材料 大学生科技创意大赛科技查新报告是什么样子的 一 大学生科技创意大赛是什么 太多种类分不清 快来看 大学
  • 如何获取使用某个table的所有存储过程

    select distinct object name id from syscomments where id in select object id from sys objects where type P and text like
  • 目标识别、目标跟踪算法总结

    想自学图像处理的相关知识 正好实验室师兄做过两个关于红外目标跟踪的项目 因此从mean shift SR RP PF开始学习 但是查阅资料的时候 发现对各种算法理解非常 利用图像处理算法 实现的功能一般包括 目标的检测 识别 跟踪 常见的问
  • 机器学习顶刊文献_哪些成为了经典-引用次数最多的10篇机器学习文献

    近40年来机器学习领域产生了数以万计的论文 并以每年上万篇的速度增长 但真正能够称为经典 经受住历史检验 能投入实际应用的并不多 本文整理了机器学习历史上出现的经典论文 按照被引用次数对它们进行了排序 分为top10 被引用次数超过2万 被
  • FreeModbus的移植

    FreeModbus V1 6 主机使用说明 一 简述 FreeModbus是一款开源的Modbus协议栈 但是只有从机开源 主机源码是需要收费的 同时网上也没有发现比较好的开源的Modbus主机协议栈 所以才开发这款支持主机模式的Free
  • 【Docker】使用Docker在远程服务器上安装MySQL8并使用本地navicat连接

    使用Docker在远程服务器上安装MySQL8并使用本地navicat连接 一 下载MySQL8镜像 二 启动MySQL容器 三 配置MySQL数据库的远程访问 使用本地navicat连接服务器MySQL 四 docker中删除已创建的容器
  • 虚拟机使用情况(持续更新)

    装了虚拟机后今天打开发现文字变成了英文的 并且装好的系统打不开机 出现提示 本来用的好好的 怎么就出问题了呢 回忆起来最后使用时为了方便整理磁盘 把安装在E盘的所有虚拟机文件都放在一个命名文件里 我恢复原样后就正常使用了 可能是之前下载的时
  • 操作系统之PV操作

    基本概念 进程状态 进程通常分为就绪 运行和阻塞三个工作状态 三种状态在某些条件下可以转换 三者之间的转换关系如下 进程三个状态之间的转换就是靠PV操作来控制的 PV操作主要就是P操作 V操作和信号量 其中信号量起到了至关重要的作用 信号量
  • 微信小程序分享页面代码

    在微信小程序中实现分享功能需要以下几个步骤 1 在 app json 文件中配置分享参数 例如标题 路径等 示例如下 json pages pages index index window navigationBarTitleText 小程
  • java print\println\printf的区别

    printf主要是继承了C语言的printf的一些特性 可以进行格式化输出 print就是一般的标准输出 但是不换行 print将它的参数显示在命令窗口 并将输出光标定位在所显示的最后一个字符之后 println www infocool
  • 源NAT,目的NAT和PAT以及端口映射的区别?

    一 NAT 1 动态NAT 地址复用 指将内部私有IP转换为公网IP地址时 IP的对应关系是不确定的 也就是说只要指定哪些内部地址可以进行NAT转换 以及哪些可以的合法的IP地址可以作为外部地址 就可以进行动态转换了 也可以使用多个合法地址
  • unity3d运行后自动暂停_Unity3D 关于延迟、暂停执行脚本的几个方法总结

    1 InvokeRepeating函数 和 Invoke函数 个人认为最为有效方法 用法 InvokeRepeating delayOpen 1 5 1秒后调用 delayOpen 函数 之后每5秒调用一次 写在Start函数内 Invok
  • python实现时间序列信号的频谱、倒频谱以及功率谱

    python实现时间序列信号的频谱 倒频谱以及功率谱 认识傅里叶变换 一 频谱 1 引入库 2 频谱函数封装 二 功率谱 功率谱谱函数封装 三 倒频谱 倒频谱谱函数封装 以振动信号为例 认识傅里叶变换 这里我就不多说了 百度谷歌一大堆说的明
  • /sys/module/ 模块信息 目录与/proc/modules文件

    在内核模块编译中 会选择编译成模块 或者build in 内核镜像中 其中对内核模块有很好的的说明 这也是linux在嵌入式当中得到广泛应用的充分体现 内核中有很多功能选项 其中有许多使我们不需要的 内核设计成模块的优势所在就在这里 不需要
  • Android java.lang.UnsatisfiedLinkError: No implementation found

    例如 该项目的如下报错 java lang UnsatisfiedLinkError No implementation found for void org webrtc PeerConnectionFactory nativeIniti
  • Python 环境变量配置详解

    文章目录 1 配置前准备 1 1 检查环境变量是否配置成功 1 2 查询 python exe 的安装路径 2 配置步骤 2 1 进入高级系统设置 2 2 设置环境变量 2 1 1 配置 Python exe 所在路径 2 2 1 配置 p
  • GIT 仓库 子模块 SUBMODULE 拉取子仓库代码

    找到 gitmodules 文件所在的目录 在该目录下运行命令 git submodule init git submodule update
  • DNS请求响应

    问题背景 在无线网络可用 而有线网络不可用的场景下 依靠第三方接口解析域名 或者udp tcp接口内部解析域名 会默认阻塞10秒钟 办法 自行定制dns请求及响应 BOOL SendDNSRequest sockaddr in sockAd
  • Low Memory Killer

    oom score adj 计算方法 oom score adj oom adj OOM SCORE ADJ MAX OOM DISABLE OOM SCORE ADJ MAX 1000 OOM DISABLE 17 其中 oom adj
  • c# mysql 二进制图片_C#将image中的显示的图片转换成二进制

    1 将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是 二进制数据 因此必须将图像文件转换成字节数组才能存入数据库中 View Code 将本地图片转换成二进制保存起来 private byte SetImageT