2012-10-18 43 views
8

Xin chào Tôi đang cố gắng chuyển đổi hình ảnh thành mảng byte để chuyển nó thành sql dưới dạng byte(). Im cố gắng sử dụng Image Converter nhưng nó vẫn tiếp tục thất bạiLàm thế nào để chuyển đổi System.Drawing.Image để Byte Array?

Dim converter As New ImageConverter 
nRow.Signature = converter.ConvertTo(imgSignature, TypeOf(Byte()) 

lỗi tôi tiếp tục nhận được là byte là một loại không biểu hiện

Trả lời

12

Nhà điều hành VB.NET typeof không làm những gì bạn nghĩ rằng nó. Hơi khó hiểu có lẽ do nhà điều hành C# typeof. VB.NET tương đương là hàm GetType(). Điều này hoạt động tốt:

Dim converter As New ImageConverter 
nRow.Signature = converter.ConvertTo(imgSignature, GetType(Byte()) 

Bộ chuyển đổi loại sử dụng MemoryStream để thực hiện chuyển đổi, sử dụng định dạng hình ảnh PNG.

14

Bạn có thể sử dụng một MemoryStream. Bằng cách lưu hình ảnh vào một MemoryStream, bạn có thể lấy mảng byte dữ liệu từ hình ảnh:

Dim ms = new MemoryStream() 
imgSegnature.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here 
Dim bytes = ms.ToArray() 
+1

Cảm ơn bạn, đã rất hữu ích cho tôi. –

Các vấn đề liên quan