博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# Bitmap byte[] Stream 文件相互转换
阅读量:4302 次
发布时间:2019-05-27

本文共 2042 字,大约阅读时间需要 6 分钟。

  1. //byte[] 转图片

  2. public static Bitmap BytesToBitmap(byte[] Bytes)

  3. {

  4. MemoryStream stream = null;

  5. try

  6. {

  7. stream = new MemoryStream(Bytes);

  8. return new Bitmap((Image)new Bitmap(stream));

  9. }

  10. catch (ArgumentNullException ex)

  11. {

  12. throw ex;

  13. }

  14. catch (ArgumentException ex)

  15. {

  16. throw ex;

  17. }

  18. finally

  19. {

  20. stream.Close();

  21. }

  22. }

  23.  
  24. //图片转byte[]

  25. public static byte[] BitmapToBytes(Bitmap Bitmap)

  26. {

  27. MemoryStream ms = null;

  28. try

  29. {

  30. ms = new MemoryStream();

  31. Bitmap.Save(ms, Bitmap.RawFormat);

  32. byte[] byteImage = new Byte[ms.Length];

  33. byteImage = ms.ToArray();

  34. return byteImage;

  35. }

  36. catch (ArgumentNullException ex)

  37. {

  38. throw ex;

  39. }

  40. finally

  41. {

  42. ms.Close();

  43. }

  44. }

  45. }

  46.  
  47. =====================

  48.  
  49. * Stream 和 byte[] 之间的转换

  50. * - - - - - - - - - - - - - - - - - - - - - - - */

  51. /// <summary>

  52. /// 将 Stream 转成 byte[]

  53. /// </summary>

  54. public byte[] StreamToBytes(Stream stream)

  55. {

  56. byte[] bytes = new byte[stream.Length];

  57. stream.Read(bytes, 0, bytes.Length);

  58.  
  59. // 设置当前流的位置为流的开始

  60. stream.Seek(0, SeekOrigin.Begin);

  61. return bytes;

  62. }

  63.  
  64. /// <summary>

  65. /// 将 byte[] 转成 Stream

  66. /// </summary>

  67. public Stream BytesToStream(byte[] bytes)

  68. {

  69. Stream stream = new MemoryStream(bytes);

  70. return stream;

  71. }

  72.  
  73.  
  74. /* - - - - - - - - - - - - - - - - - - - - - - - -

  75. * Stream 和 文件之间的转换

  76. * - - - - - - - - - - - - - - - - - - - - - - - */

  77. /// <summary>

  78. /// 将 Stream 写入文件

  79. /// </summary>

  80. public void StreamToFile(Stream stream,string fileName)

  81. {

  82. // 把 Stream 转换成 byte[]

  83. byte[] bytes = new byte[stream.Length];

  84. stream.Read(bytes, 0, bytes.Length);

  85. // 设置当前流的位置为流的开始

  86. stream.Seek(0, SeekOrigin.Begin);

  87.  
  88. // 把 byte[] 写入文件

  89. FileStream fs = new FileStream(fileName, FileMode.Create);

  90. BinaryWriter bw = new BinaryWriter(fs);

  91. bw.Write(bytes);

  92. bw.Close();

  93. fs.Close();

  94. }

  95.  
  96. /// <summary>

  97. /// 从文件读取 Stream

  98. /// </summary>

  99. public Stream FileToStream(string fileName)

  100. {

  101. // 打开文件

  102. FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);

  103. // 读取文件的 byte[]

  104. byte[] bytes = new byte[fileStream.Length];

  105. fileStream.Read(bytes, 0, bytes.Length);

  106. fileStream.Close();

  107. // 把 byte[] 转换成 Stream

  108. Stream stream = new MemoryStream(bytes);

  109. return stream;

  110. }

  111.  

转载地址:http://twlws.baihongyu.com/

你可能感兴趣的文章
XPATH入门
查看>>
python爬虫 CSS选择器
查看>>
正常关闭java程序
查看>>
查看linux核心数
查看>>
数据结构与算法三: 数组
查看>>
Activiti工作流会签二 启动流程
查看>>
Activiti工作流会签三 撤销,审批,驳回
查看>>
Oauth2方式实现单点登录
查看>>
CountDownLatch源码解析加流程图详解--AQS类注释翻译
查看>>
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>