2010-10-25 169 views
0

将图像转换为字节数组的需求/目的是什么?将图像转换为字节数组?

为什么我们需要这样做?

+6

这取决于你想完成什么,不是吗? – driis 2010-10-25 17:39:37

+3

你的问题太含糊。在不同情况下有很多不同的分数。你应该指出你需要什么情况,或者你会对你正在做的事情有很多猜测,还有很多其他与之相关的问题的答案,人们认为你真的想问一些问题(比如示例* how *将图像转换为字节数组)。 – Guffa 2010-10-25 17:46:22

+0

似乎是一个功课问题。如果是,请给它加标签。目前,这与C#无关。我从你的帖子中删除了C#。如果它实际上是一个特定于C#的问题,请更新您的帖子,其中包含实际上与C#有关的内容。 – 2010-10-25 18:48:37

回答

-2

如果它是一个图像文件使用File.ReadAllBytes()。

+0

你读过“问题”了吗? – 2013-04-26 14:43:00

4

我认为最常见的用途是将图像保存在数据库中(BINARY(MAX)数据类型)。

-1
public byte[] imageToByteArray(System.Drawing.Image image) 
{ 
MemoryStream ms = new MemoryStream(); 
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); 
return ms.ToArray(); 
} 
+0

谢谢,但这不是我要求的...我问,为什么我们必须做这个转换? – Mike 2010-10-25 17:43:33

2

最常见的是坚持在数据库中作为BLOB的图像(二进制大对象),但它也可以在Web服务中使用,你可以采取的字节数组作为方法的参数,然后转换该无论出于何种原因都可以使用图片

0

为了进一步概括Brad所说的:序列化和(可能)对象比较的基础。

5

将图像转换为字节数组的目的是什么?

  • 保存到磁盘

  • 串行化图像的图像以发送到web服务

  • 图像保存到数据库

  • 串行化图像进行处理

...只是一个fe我可以想到我的头顶。

0

如果您在内存中有图像并希望通过协议(例如HTTP)将其发送给某人,这也很有帮助。一个完美的例子就是Chilkat HTTPRequest类中的“AddBytesForUpload”方法[http://www.chilkatsoft.com/refdoc/vbnetHttpRequestRef.html]。

为什么你会需要这样做,你可能会问......好吧,让我们假设我们有一个图像目录,我们希望自动上传到ima​​geshack,但在手之前做一些mod像把我们的域名放在右下角。有了这个,你可以将图像加载到内存中,使用你需要的mod,然后简单地将该流附加到HTTPRequest对象上。如果没有这个数组,你需要在上传之前对文件进行同样的处理,这反过来会创建一个新文件,然后在删除之后或之后删除原始文件,这并不总是理想的。

1

我唯一需要做的就是逐像素地比较两幅图像,看它们是否相同(作为自动化测试套件的一部分)。转换为字节并固定内存允许我使用C#中的不安全块进行基于指针的直接比较,比GetPixel快几个数量级。

1

最近我写了一个代码从图像获取哈希,这里是如何:

private ImageConverter c = new ImageConverter(); 
    private byte[] getBitmapHash(Bitmap hc) { 
     return md5.ComputeHash(c.ConvertTo(hc, typeof(byte[])) as byte[]); 
    } 

下面是这context序列化图像或将其添加到数据库原始字节格式(没有MIME类型)似乎不是明智的,但你可以做到这一点。图像处理密码学是最有可能的地方,这是有用的。

相关问题