2010-10-25 170 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類型)似乎不是明智的,但你可以做到這一點。圖像處理密碼學是最有可能的地方,這是有用的。

相關問題