簡體   English   中英

將位圖圖像轉換為字符串格式以通過網絡(LAN)發送,反之亦然

[英]Convert Bitmap image to String format to send over network(LAN) and vice-versa

我基本上是在Visual Studio 2010 .NET 4.0中開發一個軟件,在該軟件中,我從一台PC捕獲屏幕截圖並將其通過網絡發送給另一個。 由於我無法直接發送位圖,因此必須將其轉換為字符串。 我做了很多互聯網搜索,但是找不到任何解決方案。 :(

我在stackoverflow本身上找到了此代碼。 但是它不起作用。 我試圖打印字符串(從圖像轉換),但是程序的行為就像該行不存在。 我用了一個MessageBox.Show(String); 但是,甚至沒有一個味精盒彈出! 誰能幫忙嗎? 我被卡住了! 預先感謝:)(是)

bitmapString = null;       // Conversion from image to string
MemoryStream memoryStream = new MemoryStream();
bmpScreenshot.Save(memoryStream, ImageFormat.Png);
byte[] bitmapBytes = memoryStream.GetBuffer();
bitmapString = Convert.ToBase64String(bitmapBytes,Base64FormattingOptions.InsertLineBreaks); // Conversion from image to string end

Image img = null;                           //Conversion from string to image
byte[] bitmapBytes = Convert.FromBase64String(rob);
MemoryStream memoryStream = new MemoryStream(bitmapBytes);
img = Image.FromStream(memoryStream);   //Conversion from string to image end

嘗試將其轉換為字節數組:

public static byte[] ImageToByteArray(Image img)
{
    byte[] byteArray = new byte[0];
    using (MemoryStream stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        stream.Close();

        byteArray = stream.ToArray();
    }
    return byteArray;
}

我相信您可以將Bitmap對象簡單地轉換為Image對象。 所以Image img = (Image)myBitmap; -然后將其傳遞給上面的方法。

為什么它需要是一個字符串? 您使用什么方法通過網絡發送它? 網絡服務? 直接插座?

不管您如何發送,最好的方法是將其轉換為字節數組,然后通過網絡傳遞該數組

如果您需要一些執行此操作的代碼,請查看關於SO的類似問題,例如使用C#通過套接字發送和接收圖像

您可以直接發送各個字節,但是如果您確實想要一個字符串,則可以使用一種稱為base64的格式對其進行編碼。 這是msdn文檔,用於對此格式進行編碼解碼 您可以使用張貼在他的答案中的@AdamPlocher代碼將圖像轉換為字節數組(我對其+1了,因為他免除了我這樣做;))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM