字节组数(二进制流)、Base64、图片(文件)、二进制相互之间转换
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebUI.ServiceReferenceUser;
using System.Text; namespace WebUI.Controllers
{
public class DefaultController : Controller
{
// GET: Default
public ActionResult Index()
{
return View();
} #region 文件转二进制流(字节数组)
/// <summary>
/// 文件转二进制流(字节数组)
/// </summary>
/// <param name="strpath"></param>
/// <returns></returns>
public byte[] returnbyte(string strpath)
{
// 以二进制方式读文件
FileStream fsMyfile = new FileStream(strpath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
// 创建一个二进制数据流读入器,和打开的文件关联
BinaryReader brMyfile = new BinaryReader(fsMyfile);
// 把文件指针重新定位到文件的开始
brMyfile.BaseStream.Seek(, SeekOrigin.Begin);
byte[] bytes = brMyfile.ReadBytes(Convert.ToInt32(fsMyfile.Length.ToString()));
// 关闭以上new的各个对象
brMyfile.Close();
return bytes;
}
#endregion #region 图片转二进制流(字节数组)
/// <summary>
/// 图片转二进制流(字节数组)
/// </summary>
/// <param name="Imagefilename"></param>
/// <returns></returns>
private byte[] ImgToByte(string Imagefilename)
{
Bitmap bmp = new Bitmap(Imagefilename);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = ;
ms.Read(arr, , (int)ms.Length);
ms.Close();
return arr;
}
#endregion #region 二进制流转图片
/// <summary>
/// 二进制流转图片
/// </summary>
/// <param name="arr"></param>
/// <param name="FileName"></param>
private void ByteToImg(byte[] arr, string FileName)
{
MemoryStream ms = new MemoryStream(arr);
Bitmap bmp = new Bitmap(ms);
bmp.Save(FileName);
}
#endregion #region 图片转Base64字符串
/// <summary>
/// 图片转Base64字符串
/// </summary>
/// <param name="Imagefilename"></param>
/// <returns></returns>
private string ImgToBase64String(string Imagefilename)
{
Bitmap bmp = new Bitmap(Imagefilename);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = ;
ms.Read(arr, , (int)ms.Length);
ms.Close();
String strbaser64 = Convert.ToBase64String(arr);
return strbaser64;
}
#endregion #region Base64字符串转图片
/// <summary>
/// Base64字符串转图片
/// </summary>
/// <param name="Base64Str"></param>
/// <param name="FileName"></param>
private void Base64StringToImg(string Base64Str, string FileName)
{
MemoryStream ms = new MemoryStream(Convert.FromBase64String(Base64Str));
Bitmap bmp = new Bitmap(ms);
bmp.Save(FileName);
}
#endregion #region Base64和字节数组互转
/// <summary>
/// Base64转字节数组
/// </summary>
/// <param name="Base64Str"></param>
/// <returns></returns>
private byte[] Base64StringToByte(string Base64Str)
{
return Convert.FromBase64String(Base64Str);
} /// <summary>
/// 字节数组转Base64
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
private string ByteToBase64String(byte[] arr)
{
return Convert.ToBase64String(arr);
}
#endregion #region 字节流与二进制互转
/// <summary>
/// 字节流与二进制互转
/// </summary>
public void ByteToBit()
{
var bytearr = ImgToByte(Server.MapPath("/images/teacher.jpg"));
StringBuilder str = new StringBuilder(); foreach (var p in bytearr)
{
str.AppendFormat("{0},", Convert.ToString(p, ));
} var imgstr = str.ToString().Trim(','); FileHelper.WriteText(Server.MapPath("/bit.txt"), imgstr); var arr = FileHelper.FileToString(Server.MapPath("/bit.txt")).Split(',');
var imgarr = Array.ConvertAll<string, byte>(arr, m => Convert.ToByte(m, ));
}
#endregion /// <summary>
/// 测试输出图片
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public ActionResult Pic(string fileName)
{
return File(Base64StringToByte(FileHelper.FileToString(fileName)), @"image/jpeg");
}
}
}
字节组数(二进制流)、Base64、图片(文件)、二进制相互之间转换的更多相关文章
- 如何显示二进制流的图片(利用img控件)
之前在http://www.cnblogs.com/JsonZhangAA/p/5568575.html博文中是利用的image控件来显示的二进制流图片,我现在想的是能 通过普通的<img id ...
- 关于Python获取图片文件二进制数据的问题(获取为空)
在搭建fastdfs文件系统的时候遇到了点问题,在测试上传文件数据流的时候,需要Python来获取本地文件的二进制流 from fdfs_client.client import Fdfs_clien ...
- c# 读数据库二进制流到图片
public Bitmap PictureShow(string connectionString, string opName, string productType) { ...
- 编写base64图片文件
base64编码代替css背景图片在网站上应用是很广泛的,例如:loading gif图片,天猫加载时那只猫等等. 因为base64图片可以减少http请求,所以我们经常会把不经常改动的,独立的,尺寸 ...
- php Base64编码文件二进制流主要使用
<?php header( "Content-type: image/jpeg"); //$filename='1.jpg'; //$content=file_get_con ...
- BLOB存储图片文件二进制数据是非对错
子在一天一天虚度,生活也在一天一天中茫然 做人做事哪能尽如人意,付出多少收获多少虽然存在偏颇,但是不劳而获的心态是万万不对的,更不能去怨天尤人,低调为人.做好自己就可以了 改进你的系统的最好的方法是先 ...
- ajax二进制流乱码图片解决方法
仅供自己参考 参考博客 在请求成功的地方 添加以下代码: var blob=new Blob(); blob=this.response; 既然二进制数据拿到了,那么要把它放在一个 html标签中,并 ...
- C#MVC使用二进制流显示图片
关于显示图片的最好方法当然是img 的src直接指向地址,简单实用.但是有时候也会使用到使用图片流显示图片的方法.实现也比较简单(在C# mvc中,java的不了解).具体如下: 1.前台cshtml ...
- GDI+ Image 读取内存二进制流显示图片
int iBmpSize = cd.nTotleLen; HGLOBAL hMemBmp = GlobalAlloc(GMEM_FIXED, iBmpSize); IStream* pStmBmp = ...
- DBImg: 图片文件-二进制文件的转换
using System; using System.IO; using System.Drawing; //using System.Collections.Generic; //using Sys ...
随机推荐
- U盘因格式化 NTFS 中断造成无法识别,生产平台同样无法识别的修复处理方案
特征: 电脑设备管理器(win10):识别到大容量存储设备 电脑磁盘管理:识别可移动磁盘无媒体 ChipGenius(v4_19_0319):能识别到制造商,但识别不到芯片具体型号 U盘相关生产平台: ...
- Windows10 图标变白修复
Windows10 图标变白修复 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Tue, 16 Jul 2019 10:54:00 +0800 这种问题多半是ico缓存造成 ...
- Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制
什么是Handler 之前说过了,Android不允许主线程(MainThread)外的线程(WorkerThread)去修改UI组件,但是又不能把所有的更新UI的操作都放在主线程中去(会造成ANR) ...
- Django之小结
常用的函数方法与包的调用 # 登陆视图函数 def login(request): if request.method == 'GET': return render(request,'login.h ...
- [dev][ipsec][esp] ipsec链路中断的感知问题
ipsec如何感知到链路中断了?以下内容讲的是在没有配置DPD,且没有rekey的场 景下. 1. ESP认为,以下两个场景交由应用层来感知,应用层会发现ipsec的连接坏掉了. a,ESP承载的连接 ...
- 【问题】root账号的UID和GID永远是0吗?
参考:Does the root account always have UID/GID 0? 这实际上是2个问题 Does the superuser account always have uid ...
- pytorch版yolov3训练自己数据集
目录 1. 环境搭建 2. 数据集构建 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来. git cl ...
- 部署Nginx网站服务实现访问状态统计以及访问控制功能
原文:https://blog.51cto.com/11134648/2130987 Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物 ...
- Alpha2版本相互测试
[作业信息] Q A 作业所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 作业要求 https: ...
- CommandLineParse类(命令行解析类)
https://blog.csdn.net/jkhere/article/details/8674019 https://sophia0130.github.io/2018/05/08/Command ...