C#图片二进制互相转换实现详解
需积分: 10 150 浏览量
更新于2024-09-11
收藏 4KB TXT 举报
"图片二进制互相转换C#"
在开发C#应用程序时,图片的存储和读取是非常重要的两个方面。通常情况下,图片可以以二进制的形式存储在数据库中,以便于后续的读取和处理。本文将介绍图片二进制互相转换的相关知识点。
存储图片
在存储图片时,需要将图片转换为二进制数据,以便于存储在数据库中。在SQL Server数据库中,图片通常存储在Image数据类型的字段中,该字段可以存储Byte[]类型的数据。
读取图片
在读取图片时,需要将Byte[]类型的数据转换回图片。这个过程可以通过将Byte[]数组转换为MemoryStream,然后使用System.Drawing.Image.FromStream()方法将其转换为图片对象。
图片二进制转换
图片二进制转换是指将图片转换为二进制数据的过程,也可以将二进制数据转换回图片。这种转换可以使用C#语言中的System.Drawing命名空间和System.IO命名空间来实现。
GetPictureData方法
GetPictureData方法用于将图片文件转换为二进制数据。该方法使用FileStream类读取图片文件,并将其转换为Byte[]数组。
```csharp
public byte[] GetPictureData(string imagepath)
{
FileStream fs = new FileStream(imagepath, FileMode.Open);
byte[] byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Close();
return byData;
}
```
PhotoImageInsert方法
PhotoImageInsert方法用于将图片对象转换为二进制数据。该方法使用MemoryStream类将图片对象转换为Byte[]数组。
```csharp
public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
{
MemoryStream mstream = new MemoryStream();
imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] byData = new byte[mstream.Length];
mstream.Position = 0;
mstream.Read(byData, 0, byData.Length);
mstream.Close();
return byData;
}
```
ReturnPhoto方法
ReturnPhoto方法用于将二进制数据转换回图片对象。该方法使用MemoryStream类将Byte[]数组转换为图片对象。
```csharp
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
```
WritePhoto方法
WritePhoto方法用于将二进制数据写入到Response对象中,以便于在浏览器中显示图片。
```csharp
public void WritePhoto(byte[] streamByte)
{
Response.BinaryWrite(streamByte);
}
```
图片二进制互相转换是C#应用程序开发中一个非常重要的知识点。通过使用System.Drawing命名空间和System.IO命名空间,可以轻松地实现图片的存储和读取。
2020-12-31 上传
2009-08-03 上传
2012-04-20 上传
2021-01-20 上传
437 浏览量
2022-02-04 上传
2020-07-03 上传
过去式_PL
- 粉丝: 0
- 资源: 14
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析