1. /// <summary>
  2. /// 将 Stream 转成 byte[]
  3. /// </summary>
  4. /// <param name="stream"></param>
  5. /// <returns></returns>
  6. public static byte[] StreamToBytes(Stream stream)
  7. {
  8. byte[] bytes = new byte[stream.Length];
  9. stream.Read(bytes, , bytes.Length);
  10. // 设置当前流的位置为流的开始
  11. stream.Seek(, SeekOrigin.Begin);
  12. return bytes;
  13. }
  14.  
  15. /// <summary>
  16. /// 将 byte[] 转成 Stream
  17. /// </summary>
  18. /// <param name="bytes"></param>
  19. /// <returns></returns>
  20. public static Stream BytesToStream(byte[] bytes)
  21. {
  22. Stream stream = new MemoryStream(bytes);
  23. return stream;
  24. }
  25.  
  26. /// <summary>
  27. /// 字节流转换成图片
  28. /// </summary>
  29. /// <param name="byt">要转换的字节流</param>
  30. /// <returns>转换得到的Image对象</returns>
  31. public static Image BytToImg(byte[] byt)
  32. {
  33. try
  34. {
  35. MemoryStream ms = new MemoryStream(byt);
  36. Image img = Image.FromStream(ms);
  37. return img;
  38. }
  39. catch (Exception ex)
  40. {
  41. LogHelper.WriteError("StreamHelper.BytToImg 异常", ex);
  42. return null;
  43. }
  44. }
  45.  
  46. /// <summary>
  47. /// 图片转换成字节流
  48. /// </summary>
  49. /// <param name="img"></param>
  50. /// <returns></returns>
  51. public static byte[] ImageToByteArray(Image img)
  52. {
  53. ImageConverter imgconv = new ImageConverter();
  54. byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[]));
  55. return b;
  56. }
  57.  
  58. /// <summary>
  59. /// 把图片Url转化成Image对象
  60. /// </summary>
  61. /// <param name="imageUrl"></param>
  62. /// <returns></returns>
  63. public static Image Url2Img(string imageUrl)
  64. {
  65. try
  66. {
  67. if (string.IsNullOrEmpty(imageUrl))
  68. {
  69. return null;
  70. }
  71.  
  72. WebRequest webreq = WebRequest.Create(imageUrl);
  73. WebResponse webres = webreq.GetResponse();
  74. Stream stream = webres.GetResponseStream();
  75. Image image;
  76. image = Image.FromStream(stream);
  77. stream.Close();
  78.  
  79. return image;
  80. }
  81. catch (Exception ex)
  82. {
  83. LogHelper.WriteError("StreamHelper.Url2Img 异常", ex);
  84. }
  85.  
  86. return null;
  87. }
  88.  
  89. /// <summary>
  90. /// 把本地图片路径转成Image对象
  91. /// </summary>
  92. /// <param name="imagePath"></param>
  93. /// <returns></returns>
  94. public static Image ImagePath2Img(string imagePath)
  95. {
  96. try
  97. {
  98. if (string.IsNullOrEmpty(imagePath))
  99. {
  100. return null;
  101. }
  102.  
  103. byte[] bytes = Image2ByteWithPath(imagePath);
  104. Image image = BytToImg(bytes);
  105. return image;
  106. }
  107. catch (Exception ex)
  108. {
  109. LogHelper.WriteError("StreamHelper.ImagePath2Img 异常", ex);
  110. return null;
  111. }
  112. }

sream bytes[] img相互转换的更多相关文章

  1. 彻底弄懂python编码

    在编写python程序的过程中,中英文混用经常会出现编码问题.围绕此问题,本文首先介绍编码的含义及常用编码,随后列举几个python经常遇到的编码异常及解决方法,接着列举笔者在实践中遇到的异常出现的情 ...

  2. python3中bytes、hex和字符串相互转换

    1.字符串转bytes a = 'abcd' a1 = bytes(a,encoding('utf-8')) 2.bytes转字符串 a = b'abcd' a1 = bytes.decode(a , ...

  3. 内置函数 -- bytes -- 字节码与字符串相互转换

    说明: 1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改. 2. 当3个参数都不传的时候,返 ...

  4. python之bytes和string相互转换

    来源:https://www.cnblogs.com/skiler/p/6687337.html 1.bytes主要是给计算机看的,string主要是给人看的 2.中间有个桥梁就是编码规则,现在大趋势 ...

  5. [转] python关于ctypes使用char指针与bytes相互转换的问题

    最近研究人脸识别,需要用python调用so动态库,涉及到c/c++中的指针字符串转Python的bytes对象的问题. 按照ctypes的文档,直观方式是先创建对应的类型数组,再将指针取地址一一赋值 ...

  6. Java File 与 Bytes相互转换

    public static byte[] fileToBytes(String filePath) { byte[] buffer = null; File file = new File(fileP ...

  7. IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换

    /* * 用于实现 IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换的帮助类 */ using System;using System.IO;us ...

  8. (一)一个工作任务引起的乱战——c#中结构体与byte[]间相互转换

    一个工作任务涉及到c#与c++系统间的udp通信,处理了蛮长时间没有完成任务,但是期间接触到不少小知识点.本人是初接触c#,c++语言没有接触过.可能写的东西都很小儿科,暂且记录下来当工作日记把. 先 ...

  9. 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...

随机推荐

  1. EMVTag系列5《8E 持卡人验证方法(CVM)列表》

    L: var. up to 252 -R(需求):数据必须存在,在读应用数据过程中,终端不检查 按照优先顺序列出卡片应用支持的所有持卡人验证方法 注:一个应用中可以有多个CVM列表,例如一个用于国内交 ...

  2. INFORMIX数据库常用命令

    INFORMIX数据库常用命令 一.onstat命令集 1.onstat  - 说明:查看数据库当前的状态 用法:onstat  - 2.onstat  -c 说明:查看数据库的配置文件 用法:ons ...

  3. js实现对身份证校验

    var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古&quo ...

  4. 九度oj 1528 最长回文子串

    原题链接:http://ac.jobdu.com/problem.php?pid=1528 小白书上的做法,不过这个还要简单些... #include<algorithm> #includ ...

  5. net-snmp的安装

    安装环境是ubuntu 14. 方法1:apt-get install  net-snmp (非root用户需要sudo 提升权限) 方法2:自定义安装选择不同的版本去编译. 1:先去下载所需要的ta ...

  6. Go原子计数

    通过原子计数可以在多线程情况下,对同一个数值进行加减操作,一般用于状态同步. 先看代码: package main import "fmt" import "time&q ...

  7. func_num_args(),func_get_arg(),func_get_args()

    <?php function testFunction1(){ return func_num_args(); } function testFunction2(){ return func_g ...

  8. 一、IRIG-B 概念

    参考:http://baike.baidu.com/view/3601618.htm http://wenku.baidu.com/view/7956cd29bd64783e09122bf1.html ...

  9. iOS 进阶 第十四天(0416)

    0416 注意调用关系,如下图: 就是initWithCoder:.initWithFrame.setup方法三元组

  10. SpringMVC核心类DispatcherServlet

    配置DispatcherServlet 要使用SpringMVC,必须在web.xml中配置好这个DispatcherServlet类 <!-- spring框架必须定义ContextLoade ...