将图像读取到字节数组并更改它

Posted

技术标签:

【中文标题】将图像读取到字节数组并更改它【英文标题】:Reading image to byte array and changing it 【发布时间】:2016-04-18 17:48:24 【问题描述】:

我正在尝试在 C# 中使用 MemoryStream。 因此,我确实将 Image 转换为字节数组,将字节数组转换为 Image。 像这样

var bytes = File.ReadAllBytes("1.jpg");
var ms = new MemoryStream(bytes, true);
var image = Image.FromStream(ms);
pictureBox1.Image = image;

它工作正常(在图片框中显示图像)。但是当我尝试更改字节数组时

bytes[0] = 254

它抛出异常无效参数。 那么,我如何更改字节数组或将字节写入流? ms.WriteByte 不起作用。谢谢

【问题讨论】:

请展示更多你的“改变字节数组”的过程。那是失败的代码,这是我们需要看到的。 【参考方案1】:

JPEG (JPG) 文件是图像的压缩表示。它结构复杂,不是字节矩阵。修改其中的第一个字节很可能会使其无效。您最好将您的修改应用到image。然后将图片保存为JPEG格式。

【讨论】:

以上是关于将图像读取到字节数组并更改它的主要内容,如果未能解决你的问题,请参考以下文章

将字节转换为位

字节数组到图像对象

PIL:将字节数组转换为图像

从字节数组数据中获取图像宽度和高度

将位图转换为字节数组

在 Qml 中从字节数组加载到图像