在byte[]数组中进行图像处理,或者在内存流中进行图像处理

蚊子的 2009-01-16 02:54:51
MemoryStream stream = new MemoryStream();
BinaryWriter bw = new BinaryWriter(stream);
byte[] data = new byte[..];
....
bw.Write(data);

data = new byte[..];
bw.Write(data);
....
bw.Flush();
bw.BaseStream.Position = 0;
return new Bitmap(bw.BaseStream);



我使用上面方式产生的图像,然后我又对这个产生的图像用这样的方式进行处理:
BitmapData dataIn = m_Bmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
BitmapData dataOut = bmpOut.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);


--------------------

现在觉得有点繁杂,能不能不要产生 Bitmap,直接在 bw.BaseStream 或者data中进行图像处理。。。。。就是那个产生图像的方法不产生图像,而是就产生流,然后进行处理。。。。
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蚊子的 2009-01-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zgke 的回复:]
没看懂 你是什么意思~~
你建 in out 你的意识是取in 处理放到out里?
那你直接修改in 修改完了保存成另外一个文件不就行了...
[/Quote]


嗯。。处理in的图像,然后处理完的图像放入out里面。。。。

————————————————————

我的意思是这样的。。。

视频中提取图像,是一个图像流———》转换成BitMap------》对BitMap用指针的方法进行图像处理-------》处理完的图像------》再转换成图像流-----》传输
蚊子的 2009-01-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 haiwangstar 的回复:]

现在觉得有点繁杂,能不能不要产生 Bitmap,直接在 bw.BaseStream 或者data中进行图像处理

不是不可以,可以的.但这样做你首先要找到位图数据的偏移位置才行, 需要读位图文件头, 虽然省去了构建Bitmap对象的步骤,但你要写更多的代码,而且容易出错. 基于流构建Bitmap就是很标准的作法了.
[/Quote]


额,照你这么说,那我还是构成图像再处理吧。。。
haiwangstar 2009-01-16
  • 打赏
  • 举报
回复

现在觉得有点繁杂,能不能不要产生 Bitmap,直接在 bw.BaseStream 或者data中进行图像处理

不是不可以,可以的.但这样做你首先要找到位图数据的偏移位置才行, 需要读位图文件头, 虽然省去了构建Bitmap对象的步骤,但你要写更多的代码,而且容易出错. 基于流构建Bitmap就是很标准的作法了.
guokea 2009-01-16
  • 打赏
  • 举报
回复
mark
lizhengnan 2009-01-16
  • 打赏
  • 举报
回复
Bitmap bmp=new Bitmap(stream);
zgke 2009-01-16
  • 打赏
  • 举报
回复
没看懂 你是什么意思~~
你建 in out 你的意识是取in 处理放到out里?
那你直接修改in 修改完了保存成另外一个文件不就行了...
蚊子的 2009-01-16
  • 打赏
  • 举报
回复
return new Bitmap(bw.BaseStream); 可以产生一副 Bitmap的图像。。。

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧