2010-04-15 18 views

Odpowiedz

19

Może pomysł Inline Images with Data URLs?

Inline obrazów użyć danych URI schemat osadzić obrazy bezpośrednio wewnątrz internetowych stronach. Zgodnie z definicją w RFC 2397, identyfikatory URI danych są zaprojektowane tak, aby osadzać małe dane w postaci danych "natychmiastowych", tak jakby były przywoływane zewnętrznie. Korzystanie z obrazów śródliniowych zapisuje żądania HTTP ponad obiektami zewnętrznymi, do których odwołuje się użytkownik.

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

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

a potem gdzieś na stronie:

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

AFAIK to będzie pracować dla Opera 7.2+, Firefox, Safari, Netscape, Mozilla i IE8 + (IE8 do 32KB).

Dla wcześniejszej wersji IE istnieje obejście - MHTML.

Przykładem tego jest here.

+0

niesamowite, dziękuję, to działało znakomicie. Wiele docenione – Webcognoscere

+1

To nie wydaje się działać w Internet Explorer 7/8, żadnych sugestii – Webcognoscere

0

Przeglądarka używa atrybutu src do wydania oddzielnego żądania do serwera, aby uzyskać zawartość obrazu. Nie wyświetla bajtów w src jako sam obraz.

Musisz więc zapamiętać te bajty (sesja?) I użyć programu obsługi (adresu URL, który umieścisz w atrybucie src), aby przeglądarka zażądała ich.

Powiązane problemy