sream bytes[] img相互转换
- /// <summary>
- /// 将 Stream 转成 byte[]
- /// </summary>
- /// <param name="stream"></param>
- /// <returns></returns>
- public static byte[] StreamToBytes(Stream stream)
- {
- byte[] bytes = new byte[stream.Length];
- stream.Read(bytes, , bytes.Length);
- // 设置当前流的位置为流的开始
- stream.Seek(, SeekOrigin.Begin);
- return bytes;
- }
- /// <summary>
- /// 将 byte[] 转成 Stream
- /// </summary>
- /// <param name="bytes"></param>
- /// <returns></returns>
- public static Stream BytesToStream(byte[] bytes)
- {
- Stream stream = new MemoryStream(bytes);
- return stream;
- }
- /// <summary>
- /// 字节流转换成图片
- /// </summary>
- /// <param name="byt">要转换的字节流</param>
- /// <returns>转换得到的Image对象</returns>
- public static Image BytToImg(byte[] byt)
- {
- try
- {
- MemoryStream ms = new MemoryStream(byt);
- Image img = Image.FromStream(ms);
- return img;
- }
- catch (Exception ex)
- {
- LogHelper.WriteError("StreamHelper.BytToImg 异常", ex);
- return null;
- }
- }
- /// <summary>
- /// 图片转换成字节流
- /// </summary>
- /// <param name="img"></param>
- /// <returns></returns>
- public static byte[] ImageToByteArray(Image img)
- {
- ImageConverter imgconv = new ImageConverter();
- byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[]));
- return b;
- }
- /// <summary>
- /// 把图片Url转化成Image对象
- /// </summary>
- /// <param name="imageUrl"></param>
- /// <returns></returns>
- public static Image Url2Img(string imageUrl)
- {
- try
- {
- if (string.IsNullOrEmpty(imageUrl))
- {
- return null;
- }
- WebRequest webreq = WebRequest.Create(imageUrl);
- WebResponse webres = webreq.GetResponse();
- Stream stream = webres.GetResponseStream();
- Image image;
- image = Image.FromStream(stream);
- stream.Close();
- return image;
- }
- catch (Exception ex)
- {
- LogHelper.WriteError("StreamHelper.Url2Img 异常", ex);
- }
- return null;
- }
- /// <summary>
- /// 把本地图片路径转成Image对象
- /// </summary>
- /// <param name="imagePath"></param>
- /// <returns></returns>
- public static Image ImagePath2Img(string imagePath)
- {
- try
- {
- if (string.IsNullOrEmpty(imagePath))
- {
- return null;
- }
- byte[] bytes = Image2ByteWithPath(imagePath);
- Image image = BytToImg(bytes);
- return image;
- }
- catch (Exception ex)
- {
- LogHelper.WriteError("StreamHelper.ImagePath2Img 异常", ex);
- return null;
- }
- }
sream bytes[] img相互转换的更多相关文章
- 彻底弄懂python编码
在编写python程序的过程中,中英文混用经常会出现编码问题.围绕此问题,本文首先介绍编码的含义及常用编码,随后列举几个python经常遇到的编码异常及解决方法,接着列举笔者在实践中遇到的异常出现的情 ...
- python3中bytes、hex和字符串相互转换
1.字符串转bytes a = 'abcd' a1 = bytes(a,encoding('utf-8')) 2.bytes转字符串 a = b'abcd' a1 = bytes.decode(a , ...
- 内置函数 -- bytes -- 字节码与字符串相互转换
说明: 1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改. 2. 当3个参数都不传的时候,返 ...
- python之bytes和string相互转换
来源:https://www.cnblogs.com/skiler/p/6687337.html 1.bytes主要是给计算机看的,string主要是给人看的 2.中间有个桥梁就是编码规则,现在大趋势 ...
- [转] python关于ctypes使用char指针与bytes相互转换的问题
最近研究人脸识别,需要用python调用so动态库,涉及到c/c++中的指针字符串转Python的bytes对象的问题. 按照ctypes的文档,直观方式是先创建对应的类型数组,再将指针取地址一一赋值 ...
- Java File 与 Bytes相互转换
public static byte[] fileToBytes(String filePath) { byte[] buffer = null; File file = new File(fileP ...
- IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换
/* * 用于实现 IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换的帮助类 */ using System;using System.IO;us ...
- (一)一个工作任务引起的乱战——c#中结构体与byte[]间相互转换
一个工作任务涉及到c#与c++系统间的udp通信,处理了蛮长时间没有完成任务,但是期间接触到不少小知识点.本人是初接触c#,c++语言没有接触过.可能写的东西都很小儿科,暂且记录下来当工作日记把. 先 ...
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...
随机推荐
- EMVTag系列5《8E 持卡人验证方法(CVM)列表》
L: var. up to 252 -R(需求):数据必须存在,在读应用数据过程中,终端不检查 按照优先顺序列出卡片应用支持的所有持卡人验证方法 注:一个应用中可以有多个CVM列表,例如一个用于国内交 ...
- INFORMIX数据库常用命令
INFORMIX数据库常用命令 一.onstat命令集 1.onstat - 说明:查看数据库当前的状态 用法:onstat - 2.onstat -c 说明:查看数据库的配置文件 用法:ons ...
- js实现对身份证校验
var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古&quo ...
- 九度oj 1528 最长回文子串
原题链接:http://ac.jobdu.com/problem.php?pid=1528 小白书上的做法,不过这个还要简单些... #include<algorithm> #includ ...
- net-snmp的安装
安装环境是ubuntu 14. 方法1:apt-get install net-snmp (非root用户需要sudo 提升权限) 方法2:自定义安装选择不同的版本去编译. 1:先去下载所需要的ta ...
- Go原子计数
通过原子计数可以在多线程情况下,对同一个数值进行加减操作,一般用于状态同步. 先看代码: package main import "fmt" import "time&q ...
- func_num_args(),func_get_arg(),func_get_args()
<?php function testFunction1(){ return func_num_args(); } function testFunction2(){ return func_g ...
- 一、IRIG-B 概念
参考:http://baike.baidu.com/view/3601618.htm http://wenku.baidu.com/view/7956cd29bd64783e09122bf1.html ...
- iOS 进阶 第十四天(0416)
0416 注意调用关系,如下图: 就是initWithCoder:.initWithFrame.setup方法三元组
- SpringMVC核心类DispatcherServlet
配置DispatcherServlet 要使用SpringMVC,必须在web.xml中配置好这个DispatcherServlet类 <!-- spring框架必须定义ContextLoade ...