2010-04-15 32 views
11

Tôi đang sử dụng ASP.NET MVC và có một mô hình có một hình ảnh (mảng byte) trong một trong các trường. Tôi đang cố gắng để xuất hình ảnh này vào thuộc tính src của thẻ img. Tôi đang tìm cách làm một cái gì đó như <img src='<%= Model.VenueImage %>'>. Tôi có thể làm cái này như thế nào?Xuất một byte arrain vào thuộc tính src của thẻ img

Trả lời

19

Có thể Inline Images with Data URLs ý tưởng?

Hình ảnh nội tuyến sử dụng dữ liệu Lược đồ URI để nhúng hình ảnh trực tiếp trong trang trang. Theo định nghĩa của RFC 2397, dữ liệu URI được thiết kế để nhúng dữ liệu nhỏ mục là dữ liệu "ngay lập tức", như thể chúng được tham chiếu bên ngoài. Sử dụng hình ảnh nội tuyến lưu các yêu cầu HTTP qua các đối tượng được tham chiếu bên ngoài.

System.Drawing.Image image = GetImageFromSomewhere(...); 

byte[] imageData = ImageToByteArray(image); 
string imageBase64 = Convert.ToBase64String(imageData); 
string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64); 

và sau đó ở đâu đó trong trang:

<img src= "<%= ImageSrcBytes %>" /> 

AFAIK này sẽ làm việc cho Opera 7.2+, Firefox, Safari, Netscape, Mozilla và IE8 + (IE8 lên đến 32kb).

Đối với phiên bản cũ hơn của IE, có cách khắc phục - MHTML.

Ví dụ về cách thực hiện là here.

+0

tuyệt vời, cảm ơn, đã hoạt động rất tốt. Nhiều đánh giá cao – Webcognoscere

+1

Điều này dường như không hoạt động trong trình duyệt Internet 7/8, mọi đề xuất – Webcognoscere

0

Trình duyệt sử dụng thuộc tính src để đưa ra yêu cầu riêng cho máy chủ, để lấy nội dung của hình ảnh. Nó không hiển thị các byte trong src như chính hình ảnh đó.

Vì vậy, bạn sẽ cần nhớ những byte đó (phiên?) Và sử dụng trình xử lý (url bạn đưa vào thuộc tính src) để cho trình duyệt yêu cầu chúng.

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