一. 二进制转换成图片间的转换

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

C#中二进制和流之间的各种相互转换相关推荐

  1. 二分于最大流之间的关系

    二分和最大流之间其实可以相互转换的,记得当时刚开始学二分的时候,做题经常发现一些数据不是很吊的二分总有人用最大流做,然后就研究一下,其实根本没什么可研究的只是当时自己太弱了,二分题的时候直接把流量限制 ...

  2. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  3. java xml二进制流传输_XML中二进制数据的处理方法

    XML中二进制数据的处理方法 在xml中,所有的数据都是以文本的形式来显示,但是二进制数据不能直接以文本格式来表示,那xml又是怎么处理二进制数据的呢?下面就来探讨一下. 为了简单和通用性,xml被设 ...

  4. C++ 中的 IO流

    目录 回顾:C语言中的输入输出 C++中的IO流 一.流是什么? 二.C语言中的IO流 三.C++中的IO流 四.C++中的文件流 回顾:C语言中的输入输出 理解C++中的IO流之前,先来回顾一下C语 ...

  5. java流的序列化_Java中的对象流和序列化介绍

    最近,在讲流的使用,其中对象流的作用其实就是将自定义类的对象与流之间相互转换的流. 看起来还是挺简单的,那么看下面的例子: public class Student{ private int id; ...

  6. 【Java】关于Java中的各种流

    1 IO流 1.1 概念 input:输入(读取)-----> 流:数据(字节/字符) -----> output:输出(写入) 输入:把硬盘中的数据,读取到内存中使用 输出:把内存中的数 ...

  7. STM32:UART中的硬件流控RTS与CTS

    UART中的硬件流控RTS与CTS 最近太忙了,没时间写对Ucos-II的移植,先将工作中容易搞错的一个知识点记录下来,关于CTS与RTS的. 在RS232中本来CTS 与RTS 有明确的意义,但自从 ...

  8. 猿创征文|Java中的IO流大家族 (两万字详解)

    目录 IO流 概述 分类 四大家族 需要掌握的16个流 文件专属 FileInputstream(读 字节) FileInputStream类的其他常用方法 FileOutputStream (写 字 ...

  9. 深圳Java培训:Java中的对象流和序列化

    深圳Java培训:Java中的对象流和序列化 最近,在讲流的使用,其中对象流的作用其实就是将自定义类的对象与流之间相互转换的流. 看起来还是挺简单的,那么看下面的例子: public class St ...

最新文章

  1. 记录一次自己调试代码的过程
  2. 2007图灵奖得主离开了:模型检测先驱Edmund Clarke因新冠逝世
  3. c# is和as的区别
  4. 员工信息增删改查程序 (大神版)
  5. 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
  6. 32位CentOS系统安装kernel-PAE支持4g以上内存
  7. 地图统计_博客 城市访问量统计并且通过Echarts+百度地图展示
  8. linux打开文件int open,Linux下C语言open函数打开或创建文件与read,write函数详细讲解...
  9. Spring学习笔记之AOP配置篇(一) 注解配置
  10. spring boot整合shiro继承redis_Springboot+Shiro+redis整合
  11. java tutorial mobi_Java 初学者List集合教程
  12. [Ogre][地形][原创]基于OgreTerrain的地形实现
  13. 拓端tecdat|matlab如何从信号中去除60 Hz Hum电源线噪声
  14. 重载前自增运算符和后自增运算符
  15. RAIM: A Reverse Auction-based Incentive Mechanism for Mobile Data Offloading through Opportunistic
  16. php word替换换行符,word换行替换
  17. NerveBridge 助力 YF 和 Bingoo 社区实现资产跨链
  18. Learning with Pseudo-Ensembles
  19. dmp标签_一种基于DMP标签的管理平台及方法与流程
  20. linux 校园网 自动认证,关于在Linux操作系统下校园网 瑞捷的认证(xrgsu)

热门文章

  1. SHOW INDEX FROM 表名,查看mysql表中有哪些索引
  2. Linux操作系统启动流程简单介绍
  3. 系统开发基础:UML中图的相关知识笔记(下)
  4. 小屏幕 ui设计_UI设计基础:屏幕
  5. shields 徽标_我的徽标素描过程
  6. 都快 2022 年了,这些 Github 使用技巧你都会了吗?
  7. webpack 配置详解
  8. 创建maven项目,配置maven地址
  9. 利用反射做类参数的校验
  10. OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)