2010-03-29 39 views
10

Tôi không thể tìm ra cách tải hình ảnh pictureBox từ bitmap trong bộ nhớ. Có thể hay tôi phải tạo tập tin tạm thời cho bitmap?Tải hình ảnh Picturebox từ bộ nhớ?

+1

Có thể trùng lặp: http://stackoverflow.com/questions/743549 – dtb

+0

Cách thực hiện bạn có bitmap trong bộ nhớ? – SLaks

+0

Nó ngược lại, tải hình ảnh từ một tập tin, đó là bất thường. Sử dụng lớp Bitmap. –

Trả lời

20

định dạng gì là hình ảnh trong bộ nhớ?

Nếu bạn có một đối tượng Bitmap thực tế, chỉ cần gán nó vào PictureBox, theo đề nghị của DTB:

pictureBox.Image = bitmap; 

Nếu bạn có hình ảnh như một loạt các byte được tổ chức tại một dòng suối, bạn sẽ cần để tải hình ảnh từ các dòng:

var image = Image.FromStream(stream); 
pictureBox.Image = image; 

Nếu bạn thay vì có một xử lý cửa sổ GDI để bitmap, sử dụng

var image = Image.FromHbitmap(handle); 
pictureBox.Image = image; 

Về cơ bản, thật khó để trả lời câu hỏi của bạn với nhiều đề xuất hơn khi bạn chưa cho chúng tôi biết định dạng bitmap nào bạn đang lưu giữ.

+0

Tôi đã nhận được' System.ArgumentException: Tham số không hợp lệ.' ngoại lệ khi tôi cố tải hình ảnh từ luồng. –

+0

@BalagurunathanMarimuthu Tôi đề xuất đăng câu hỏi của riêng bạn để nhận trợ giúp với ngữ cảnh cụ thể của bạn; thật khó để hỗ trợ quá ít thông tin. – Bevan

2
pictureBox.Image = bitmap; 
+0

tham số bị thiếu ở đây 'Dim hình ảnh Như Byte() = GetBytes (ListView2.Items (chỉ mục) .SubItems (8) .Text) Dim converter Như New ImageConverter() PictureBox1.Image = DirectCast (converter.ConvertFrom (picture) , Hình ảnh) ' –

4

Bạn có thể tạo một Bitmap từ một MemoryStream:

pictureBox.Image = new Bitmap(new MemoryStream(byteArray)); 
+0

tại điểm nào an toàn để rõ ràng Vứt bỏ MemoryStream? Sẽ: sử dụng (var ms = new MemorySteam (byteArray)) {pictureBox.Image = new Bitmap (ms)}; được an toàn? –

+0

@MoeSisko: Bạn không thực sự cần phải vứt bỏ MemoryStream; họ không có resoruces không được quản lý. (chỉ là một 'byte []') Nhưng, có; chắc ổn thôi. – SLaks

+0

tham số bị thiếu ở đây 'Dim ảnh Như Byte() = GetBytes (ListView2.Items (chỉ mục) .SubItems (8) .Text) Dim converter Như New ImageConverter() PictureBox1.Image = DirectCast (converter.ConvertFrom (picture) , Hình ảnh) ' –

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