我正在從Web服務獲取數據的網站上工作。我們的Android開發人員給了我一個像這樣的Base64字符串。將base64轉換爲圖像並在gridview中顯示
iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAABHNCSVQICAgIf。 。 。 。 。 。 。 。 。 。
我將這個字符串保存到我的數據庫。我想知道如何將其轉換爲圖像。
我正在從Web服務獲取數據的網站上工作。我們的Android開發人員給了我一個像這樣的Base64字符串。將base64轉換爲圖像並在gridview中顯示
iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAABHNCSVQICAgIf。 。 。 。 。 。 。 。 。 。
我將這個字符串保存到我的數據庫。我想知道如何將其轉換爲圖像。
下面是解決方案,您
public Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0,imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
謝謝SACHIN先生,但是當我這樣做時,它給了我這個錯誤 System.Web.UI.WebControls.Image'不包含'FromStream – user2193729
@Sachin'MemoryStream ms = new MemoryStream(imageBytes);'就夠了。你不需要寫入它。在這種形式下,還必須設置位置爲0傳遞給'FromStream' – I4V
如果你顯示網頁(您加入asp.net作爲標籤之一,所以我假定這是Web)你可以作弊和做到這一點:
<img src="data:image/png;base64,<%=base64String%>"/>
這假設圖像是一個PNG,否則將其更改爲圖像/ JPG或其他。
不利之處是這會停止圖像被緩存。所以在實踐中@Sachin的解決方案更實用。如果你想避免保存文件,無論出於何種原因(或只是想「我需要它現在的工作」的解決方案),這種方式是乾脆利落
之前謝謝你們非常非常多。有效。 :-) – user2193729
你的字符串編碼不僅BASE64,而且URL編碼。要獲得base64字符串,請使用'string base64 = HttpUtility.UrlDecode(str);' – I4V