2014-09-23 2 views
-1

Мне нужно отобразить изображение, используя URL-адрес загрузки. Я использую приведенную ниже логику, чтобы преобразовать ее в строку базы 64.Отображение загруженного изображения с использованием строки Base 64

HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(downloadUrl); 
HttpWebResponse fileResp = (HttpWebResponse)(fileReq.GetResponse()); 
fileResp.GetResponseStream().CopyTo(ms); 

byte[] byteArray = ms.ToArray(); 

if (byteArray != null) 
{ 
return Convert.ToBase64String(byteArray); 
} 

Попытка использования этого изображения для отображения изображения. Я правильно понял строку Base 64 в «response.data»

<img src="data:image/tiff;charset=utf-8;base64,' + response.data + '" /> 

Все еще я вижу только сломанное изображение. Что-нибудь, что мне не хватает?

+0

- TIFF формат изображения, который поддерживается в браузере? –

+0

Возможный дубликат [Есть ли способ HTML5 для отображения данных изображения TIFF, уже загруженных в память] (http://stackoverflow.com/questions/16310801/is-there-an-html5-method-for-displaying-a- tiff-image-data-already-loaded-in-me) – MrTux

+0

Знаете ли вы, что это файл 'tiff'? Я работал только с png в прошлом. Кроме того, как выглядит response.data (например, первые 20 символов). и является тегом и соответствующим атрибутом src? – ne1410s

ответ

0

Теперь я преобразовал tiff в jpeg, который работает. Печально tiff не поддерживается в основных браузерах

if (byteArray != null) 
{ 
byte[] jpegBytes; 
using (MemoryStream inStream = new MemoryStream(byteArray)) 
using (MemoryStream outStream = new MemoryStream()) 
{ 
System.Drawing.Bitmap.FromStream(inStream).Save(outStream,  System.Drawing.Imaging.ImageFormat.Jpeg); 

jpegBytes = outStream.ToArray(); 
return Convert.ToBase64String(jpegBytes); 
} 
}