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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASCII码16进制对照表

ASCII码对照表 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统&#xff0c…

如何获得带时间的ping的结果

ping 192.168.1.91 | awk {print strftime("%Y-%m-%d %H:%M:%S") "\t" $0} 转载于:https://blog.51cto.com/351842/2051815

iVX低代码平台系列制作APP简单的个人界面

一、前言 我们知道,目前市场上开发app或者小程序这些应用,都离不开一个个人界面,就是类似下面的这种界面,我们可以利用iVX低代码平台来开发,简单快速,如果还有不知道iVX低代码平台是啥的,猛戳这…

王高利:Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster

Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Clusterhttp://anyisalin.blog.51cto.com/10917514/1766736转载于:https://blog.51cto.com/wanggaoli/1770659

对比C#聊聊C++大一统的初始化运算符 {}

一:背景 最近发现 C 中的类型初始化操作,没有 {} 运算符搞不定的,蛮有意思,今天我们就来逐一列一下各自的用法以及汇编展现,本来想分为 值类型 和 引用类型 两大块,但发现在 C 中没这种说法,默认…

[转]【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

前言 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发…

【ArcGIS微课1000例】0019:什么是Shapefile文件?Shapefile文件之全解

文章目录 Shapefile文件组成Shapefile文件创建Shapefile文件大小限制Shapefile文件注意事项ESRI Shapefile(shp),或简称shapefile,是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式。该文件格式已经成为了地理信息软件界的一个开放标准,这表明ESRI公司在全球的…

扼杀 304,Cache-Control: immutable

随着近些年社交网站的流行,越来越多的人学会了“刷”网页 ── 刷微博,刷朋友圈,刷新闻,刷秒杀页。这里的“刷”,就是刷新的意思,在浏览器里,你可以通过点击刷新按钮,或者用快捷键&a…

Eolink是国产API接口管理的无冕之王

一、传统API接口管理的缺陷 1、前言 项目开发我们都知道在一个项目团队中是由很多角色组成,最常见团队的就是前端开发工程师、客户端开发工程师、服务端开发工程师组成一个团队,团队之间进行合作,一般我们都离不开API接口管理和测试&#x…

linux下永久添加静态路由

在linux下永久添加静态路由有两种方法: 添加路由的命令: 1,route add route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0#添加一条静态路由 route add default gw 192.168.0.1#添加默认路由 route del -net 192.168.1.0/24 gw 192.…

【ArcGIS微课1000例】0020:关于ArcCatalog,你知道多少?

文章目录 一、ArcCatalog简介1. ArcCatalog启动和关闭2. ArcCatalog界面3. 菜单栏4. 目录树5. 搜索窗口6. 主窗口7. 工具栏二、ArcCatalog主要功能1. 文件夹连接2. 添加空间数据库连接3. 文件类型的添加和移除4. 文件特性的显示设置5. 导出数据6. 查看数据7. ArcCatalog中图层的…

【数据结构】二叉排序树

二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 特点 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1、若左子树不空,则左子树上所有…

记一次 .NET 某电厂Web系统 内存泄漏分析

一:背景 1. 讲故事前段时间有位朋友找到我,说他的程序内存占用比较大,寻求如何解决,截图就不发了,分析下来我感觉除了程序本身的问题之外,.NET5 在内存管理方面做的也不够好,所以有必要给大家分…

Bomb(hdu 3555)

题意&#xff1a;给定一个闭区间&#xff0c;求区间内有多少数中含“49” /*dp[i][j]表示i位数以j为最高位位中的所有不符合数的个数。然后把数字拆分&#xff0c;乱搞即可。 */ #include<cstdio> #include<iostream> #define lon long long using namespace std; …

《深入实践Spring Boot》下载

本书以丰富的实例&#xff0c;介绍了如何使用SpringBoot开发框架进行基础应用和分布式应用等方面的开发&#xff0c;以及如何使用SpringBoot开发的应用构建高性能的服务平台&#xff0c;同时还对SpringBoot的一些核心代码进行了深入剖析。本书从基本的入门&#xff0c;到数据库…

【ArcGIS微课1000例】0021:ArcToolBox工具箱功能与环境概述

文章目录 一、ArcToolBox功能简介1. 3D分析工具2. 分析工具3. 制图工具4. 转换工具5. 数据管理工具6. 地理编码工具7. 地统计分析工具8. 线性参考工具9. 空间分析工具10. 空间统计工具二、ArcToolBox环境设置一、ArcToolBox功能简介 ArcToolbox的空间处理工具条目众多、功能丰…

[转]将图片转换为 latex 公式

一、官网链接及使用方法 官网链接&#xff08;跨平台&#xff09;: Mathpix 公式截图快捷键截图生成 latex 公式--------------------- 作者&#xff1a;man_world 来源&#xff1a;CSDN 原文&#xff1a;https://blog.csdn.net/mzpmzk/article/details/84140617 版权声明&…

在SQL Server2005中使用 .NET程序集

昨天完成了一个最简单的在数据库中创建标量值函数,今天主要完成表值函数,存储过程和用户定义类型在和.NET结合下的使用方法.1,表值函数所谓表值函数就是说这个函数返回的结果是一个Table,而不是单个的值.在.NET 中创建这样的函数,返回的结果是一个IEnumerable接口.这个接口非常…

C# 实例解释面向对象编程中的接口隔离原则

在面向对象编程中&#xff0c;SOLID 是五个设计原则的首字母缩写&#xff0c;旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特C马丁(Robert Cecil Martin)提出的许多原则的子集&#xff0c;在他2000年的论文《设计原则与设计模式》中首次提出…