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

时间:2016-04-18 17:48:24

标签: c# memorystream

我正在尝试使用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 个答案:

答案 0 :(得分:0)

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