挑戰描述:
目標是擷取儲存為圖片的影像的影像BLOB 並將其顯示在Windows 表單中的PictureBox 控制項中。但是,目前程式碼無法正確顯示圖像。
背景:
MySQL 將映像儲存為二進位大物件 (BLOB),這是一種專門的資料類型處理二進位資料。從 BLOB 欄位擷取影像時,必須先將其轉換為位元組數組,然後再將其顯示在 PictureBox 中。
編碼增強:
要解決問題並成功從MySQL 檢索影像到PictureBox 中,修改以下方面至關重要:
1.影像轉換助手:
建立一個輔助函數,將從MySQL 擷取到的位元組陣列轉換為Image 物件。此函數對於在 PictureBox 中顯示圖像至關重要。
public Image ByteArrayToImage(byte[] byteArrayIn) { using (var memoryStream = new MemoryStream(byteArrayIn)) { return Image.FromStream(memoryStream); } }
2.從 MySQL 載入映像:
在負責從 MySQL 取得影像的程式碼中,確保使用正確的資料類型來擷取影像資料。 MySQL BLOB 欄位應讀取為位元組數組。
byte[] ImageByte = row["image"] as byte[];
3.將影像指派給PictureBox:
擷取影像後,需要將其指派給PictureBox進行顯示。使用輔助函數將位元組數組轉換為 Image 對象,並將其設定為 PictureBox 的 Image 屬性。
pictureBox1.Image = ByteArrayToImage(ImageByte);
4.資料類型注意事項:
驗證MySQL表中「image」欄位的資料類型是否定義為BLOB。這對於確保正確儲存和檢索影像至關重要。
示例代碼:
以下是演示增強功能的代碼修訂部分:
... roundPictureBox1.Image = ByteArrayToImage(ImageByte); ...
結論:
透過實施這些改進,您應該能夠成功從MySQL 檢索映像並將其顯示在PictureBox 中。請記住,處理從位元組數組到圖像物件的轉換對於在 Windows 窗體中正確視覺化至關重要。
以上是如何在 Windows 窗體 PictureBox 中顯示 MySQL BLOB 中的圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!