c# Bitmap byte[] Stream 文件相互转换

2023-05-16

  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.  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# Bitmap byte[] Stream 文件相互转换 的相关文章

  • 处理响应后使用 Amazon S3 响应流

    我正在使用 Amazon SDK 并且有一个方法可以为存储在 Amazon S3 服务中的对象返回 Stream 它包含这样的内容 var request new GetObjectRequest WithBucketName bucket
  • 如何从内存转储中查找预加载系统绘图(位图)的 ID 或名称

    我正在分析我们应用程序的内存使用情况 发现很奇怪Drawables 它不断地 吃掉 几兆字节的堆 以下是一些截图MAT http www eclipse org mat Dominator tree with 2 pretty big bi
  • 如何组合输出流,以便输出同时到达多个位置?

    我想将两个 或更多 流合成为一个 我的目标是任何输出都指向cout cerr and clog也可以与原始流一起输出到文件中 例如 当事情记录到控制台时 关闭后 我仍然希望能够返回并查看输出 我正在考虑做这样的事情 class stream
  • C++ iomanip 库的有效使用

    我创建了一个VectorC 中的类 它非常适合我的问题 我现在正在清理它 我遇到了以下代码 std ostream operator lt lt std ostream output const Vector v output lt lt
  • 如何使用 C# 上传文件并将其保存到 Stream 以便进一步预览?

    有没有办法上传文件 将其保存到流中 该流我会将其临时保存在会话中 最后 我将尝试预览此会话中的此上传文件 例如 pdf 文件 Thanks EDITED 这就是我想做的 HttpPostedFileBase hpf Request File
  • Golang 按位运算以及一般字节操作

    我有一些 C 代码 可以对字节执行一些按位运算 我正在尝试在 golang 中做同样的事情 但遇到了困难 C 中的示例 byte a c byte data int j c data j c byte c j c a c 0xFF c 0x
  • C++ int 转字节数组

    我的 java 代码中有这个方法 它返回给定 int 的字节数组 private static byte intToBytes int paramInt byte arrayOfByte new byte 4 ByteBuffer loca
  • 为什么保存加载的位图会增加其大小?

    我从 SD 卡加载一个 png 文件 我以某种方式更改它 然后再次保存 我注意到保存的文件比原始文件大得多 一开始以为是修改文件的原因 然后我用下面的代码进行测试 仍然发生 我只是加载一个 png 文件 然后用另一个名称保存它 原始文件是3
  • 如何使用 C# 将 Windows 窗体面板作为位图获取?

    我有一个 Windows 窗体 其中一个面板上有多个控件 面板并不占据所有的表单空间 而只占据一小部分 我想知道是否有某种方法可以将面板 带有所有子控件 的显示检索为位图 就像屏幕截图一样 但仅裁剪到面板 我没有查看屏幕截图 因为面板位于可
  • android recycler 视图适配器、viewpagers、数据库、位图和内存不足错误

    hello im loading lots of little images ex 180x180 10 21kb from a LOCAL database into lots of different recycler views in
  • android 中 y + 高度必须 <= bitmap.height()

    我想从另一个创建位图 但每次尝试都会崩溃 这是错误消息 java lang IllegalArgumentException y 高度必须 这是我尝试创作的地方 public void saveBitmap Bitmap bitmapToS
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • 判断位图是否全黑的有效方法是什么?

    我想知道是否有一种超级有效的方法来确认 Image 对象引用全黑图像 因此位图中的每个像素都是 ARGB 255 0 0 0 你会推荐什么 大多数位图的尺寸为 1024 x 6000 像素 尽管假设它们始终是该尺寸并不安全 我需要这个 因为
  • Streamjs和linqjs有什么关系

    读完SICP后 我最近发现streamjs https github com dionyziz stream js 开发商参考linqjs http linqjs codeplex com 作为具有不同语法的替代实现 但我无法建立连接 St
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • Bitmap.getPixels() 中的 IllegalArgumentException

    我想将数据从位图复制到int using getPixels 这是我当前的代码 int pixels new int myBitmap getHeight myBitmap getWidth myBitmap getPixels pixel
  • 如何使用Java从网络摄像头获取视频和音频流?

    如何使用 Java 以跨平台方式 从网络摄像头获取视频和音频流 例如 我们有一台带有3 4个USB网络摄像头的计算机 我们希望获取它们的流并使它们在用户界面中可见 我们怎样才能做到这样的事情呢 我需要一个简单应用程序的代码 该应用程序可以找
  • 如何将 Byte 数组转换为 Int 数组

    我正在使用以下方法读取文件 int len int new File args 0 length FileInputStream fis new FileInputStream args 0 byte buf new byte len fi
  • 从原始字节创建 bmp 文件的可移植函数? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个原始字节数组 我想从这些字节创建一个 bmp 文件 也就是说 我必须填充位图标头结构和其他内容
  • 如何用纯色填充位图?

    我需要使用唯一的 RGB 颜色创建 24 位位图 分辨率 100x100 像素 并将生成的图像保存到磁盘 我目前使用的是SetPixel http msdn microsoft com en us library 6c7eyzyb aspx

随机推荐

  • C/C++ http协议发送字段,文件,单个和多张图片

    关于c c 43 43 网络编程 xff0c 无论在linux还是windows 要说到自由性 xff0c 和安全性 xff0c socket无疑是比较好的 xff01 对于socket 因为它的传输协议只有两种tcp和udp 属于网络层
  • C# http 发送文件和接收文件的代码。

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
  • 图片与Byte相互转换,文件和字节流的转换方法

    lt summary gt 文件转化成byte 数组 lt summary gt lt param name 61 34 fileName 34 gt lt param gt lt returns gt lt returns gt priv
  • C++中使用TCP传文件

    在两个文件中都定义文件头和用到的宏 xff1a define MAX SIZE 10 define ONE PAGE 4096 struct FileHead char str 260 int size 在客户端发送接收阶段 xff1a 1
  • 理解协程并搞定协程相关面试题

    一 什么是协程 协程 xff1a 实现协作式多任务 xff0c 可以在程序执行内部中断 xff0c 转而执行其他协程 比如我们编写子程序 xff08 或者说函数 xff09 xff0c 通常是利用 调用 来实现从 A 跳去 B xff0c
  • C# 对象与JSON字符串互相转换的三种方式

    JSON JavaScript Object Notation JS 对象标记 是一种轻量级的数据交换格式 关于内存对象和JSON字符串的相互转换 xff0c 在实际项目中应比较广泛 xff0c 经过一番搜索 xff0c 找到如下三种方法来
  • HTTP 协议报文解析

    本篇主要是为了记录HTTP中报文的格式 xff0c 以便针对报文进行解析 首先会介绍基础的HTTP报文 xff0c 之后会介绍 文件上传时的数据报文格式 HTTP基础报文格式 按照HTTP报文类型进行介绍 xff0c HTTP报文类型分为请
  • C++实现通过UDP传输文件

    一 程序说明 1 本程序通过 UDP 来传输文件及其管理元数据 xff08 文件名 大小和日期等 xff09 xff0c 包括client cpp和server cpp xff0c 分别是客户端程序和服务端程序 2 文件以二进制形式传输 3
  • C/C++ ini配置文件的格式及如何读写ini配置文件

    一 ini配置文件的格式 为什么要用INI文件 xff1f 如果我们程序没有任何配置文件时 xff0c 这样的程序对外是全封闭的 xff0c 一旦程序需要修改一些参数必须要修改程序代码本身并重新编译 xff0c 这样很不好 xff0c 所以
  • C# Aspose.Words 插入纵页、横页、图片

    引用Aspose Words dll 对word文档进行操作 1 插入纵页或者横页 Document doc 61 new Document tempFile DocumentBuilder builder 61 new DocumentB
  • C#操作Word Aspose.Words组件介绍及使用 基本介绍与DOM概述

    1 基本介绍 Aspose Words是一个商业 NET类库 xff0c 可以使得应用程序处理大量的文件任务 Aspose Words支持Doc xff0c Docx xff0c RTF xff0c HTML xff0c OpenDocum
  • C# Aspose.Word 操作word文档(利用模板)

    上一篇我们介绍了用书签的方式来填充word中数据 xff0c 今天介绍第二种方法操作word xff01 依旧是先自己建好word模板 xff0c 然后这里就不需要插入书签了 1 建立模板 能看到红色标示的区域依旧用到了书签 xff0c 没
  • C#使用Aspose.Words操作word文档(利用模板2)

    最近接到个需求 xff0c 由于客服这边要导出大量有一定规则的word文件 xff0c 里面的内容希望系统自动填充 xff0c 例如 这里我使用Aspose Words dll这个类库 xff0c 1 首先 xff0c 我们需要创建模板文件
  • aspose 生成word 简单的文档操作

    1 使用Aspose Words 插件 这个插件的好处是 xff0c 发布网站的服务不需要安装office xff0c 也可以进行数据生成word文档 在生成word问当前需要我们先做好一个word模板 xff0c 需要在 xff1a 后边
  • Aspose.Word 的常见使用(不用模板创建)

    起因 因项目需要 xff0c 而且使用html转Word的时候 xff0c 样式不兼容问题 xff0c 于是只能使用Aspose Word通过代码生成 下面是通过DocumentBuilder来设计Word的 xff0c 但是和使用模型拼接
  • FileAlterationListenerAdaptor监听文件和文件夹

    背景 项目中有需要监听文件 文件夹的需求 xff0c 以便在文件 文件夹发生变化时出发相应的业务流程 这里使用Spring Boot 43 Apache Commons IO方案 另外 xff0c Apache Commons IO涉及到多
  • C# 设置word文档页面大小

    我们知道 xff0c 在MS word中 xff0c 默认的页面大小是letter 8 5 x11 xff0c 除此之外 xff0c word还提供了其他一些预定义的页面大小 xff0c 如Legal 5 4 x14 xff0c A3 11
  • C# 设置Word文档中图片的大小

    在创建Word文档时 xff0c 我们经常需要向文档中插入图片 xff0c 但插入图片的大小有时候可能会太大或太小 xff0c 这时候我们就需要对图片的大小进行调整 xff0c 使得图片与文章更加协调 美观 这篇文章将介绍如何使用Free
  • C#无损高质量压缩图片实现代码

    最近 xff0c 项目上涉及到了图像压缩 xff0c 发现原有的图像压缩功能 xff0c 虽然保证了图像的大小300K以内 xff0c 但是压缩后的图像看的不在清晰 xff0c 并且 xff0c 限定了图片的Height或者是Width 在
  • c# Bitmap byte[] Stream 文件相互转换

    byte 转图片 public static Bitmap BytesToBitmap byte Bytes MemoryStream stream 61 null try stream 61 new MemoryStream Bytes