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.pswp.cn/news/284858.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284858.shtml
英文地址,請注明出處:http://en.pswp.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年的論文《設計原則與設計模式》中首次提出…