博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中二进制和流之间的各种相互转换
阅读量:5318 次
发布时间:2019-06-14

本文共 2158 字,大约阅读时间需要 7 分钟。

一. 二进制转换成图片

1
2
3
4
5
MemoryStream ms =
new 
MemoryStream(bytes);
ms.Position = 0;
Image img = Image.FromStream(ms);
ms.Close();
this
.pictureBox1.Image

二. C#中byte[]与string的转换代码

1.

1
2
3
System.Text.UnicodeEncoding converter =
new 
System.Text.UnicodeEncoding();
  
byte
[] inputBytes =converter.GetBytes(inputString);
  
string 
inputString = converter.GetString(inputBytes);

2.

1
2
3
string 
inputString = System.Convert.ToBase64String(inputBytes);
  
byte
[] inputBytes = System.Convert.FromBase64String(inputString);
FileStream fileStream =
new 
FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);

三. C# Stream 和 byte[] 之间的转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/// 将 Stream 转成 byte[]
  
public 
byte
[] StreamToBytes(Stream stream)
{
    
byte
[] bytes =
new 
byte
[stream.Length];
    
stream.Read(bytes, 0, bytes.Length);
    
// 设置当前流的位置为流的开始
    
stream.Seek(0, SeekOrigin.Begin);
    
return 
bytes;
}
  
/// 将 byte[] 转成 Stream
  
public 
Stream BytesToStream(
byte
[] bytes)
{
    
Stream stream =
new 
MemoryStream(bytes);
    
return 
stream;
}

四. Stream 和 文件之间的转换

将 Stream 写入文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public 
void 
StreamToFile(Stream stream,
string 
fileName)
{
    
// 把 Stream 转换成 byte[]
    
byte
[] bytes =
new 
byte
[stream.Length];
    
stream.Read(bytes, 0, bytes.Length);
    
// 设置当前流的位置为流的开始
    
stream.Seek(0, SeekOrigin.Begin);
    
// 把 byte[] 写入文件
    
FileStream fs =
new 
FileStream(fileName, FileMode.Create);
    
BinaryWriter bw =
new 
BinaryWriter(fs);
    
bw.Write(bytes);
    
bw.Close();
    
fs.Close();
}

五. 从文件读取 Stream

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public 
Stream FileToStream(
string 
fileName)
{            
    
// 打开文件
    
FileStream fileStream =
new 
FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
    
// 读取文件的 byte[]
    
byte
[] bytes =
new 
byte
[fileStream.Length];
    
fileStream.Read(bytes, 0, bytes.Length);
    
fileStream.Close();
    
// 把 byte[] 转换成 Stream
    
Stream stream =
new 
MemoryStream(bytes);
    
return 
stream;
  
  
}

六Bitmap 转化为 Byte[] 

1
2
3
4
5
6
//Bitmap 转化为 Byte[]
                
Bitmap BitReturn =
new 
Bitmap();
                
byte
[] bReturn =
null
;
                
MemoryStream ms =
new 
MemoryStream();
                
BitReturn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                
bReturn = ms.GetBuffer();

转载于:https://www.cnblogs.com/jasonoiu/p/6285311.html

你可能感兴趣的文章
sqlserver 各种判断是否存在(表名、函数、存储过程等)
查看>>
给C#学习者的建议 - CLR Via C# 读后感
查看>>
Recover Binary Search Tree
查看>>
Java 实践:生产者与消费者
查看>>
[转]IOCP--Socket IO模型终结篇
查看>>
(五)归一化
查看>>
使用信号量
查看>>
《数据分析实战》--第三章 python实现
查看>>
实验八 接口与实现接口的类
查看>>
PostgreSQL 保留关键字添加方法之一,不带参数的函数
查看>>
赛前热手 (天梯赛暴力题)
查看>>
Uva(10330)
查看>>
vlan学习
查看>>
【转贴】SAP HANA内存数据库详解
查看>>
两种应该掌握的排序方法--------1.shell Sort
查看>>
vuejs动态组件给子组件传递数据
查看>>
杭电2065(递推)红色病毒
查看>>
js 获取视频的第一帧
查看>>
各种正则验证
查看>>
观察者模式(Observer)
查看>>