我目前使用ASP.Net ASMX Web服務中的函數來生成System.Drawing.Image。我想將這個圖像(在轉換爲png之後)傳遞給瀏覽器,作爲對AJAX調用的回覆。 (使用jQuery的$ .ajax)。我一直在谷歌搜索,但似乎無法找出如何,雖然我很確定這是可能的。我首先以某種方式將其轉換爲Data URI,或者是什麼?如何在ASP.NET ASMX Web服務中生成圖像並通過AJAX加載它?
2
A
回答
2
我不認爲你可以這樣做。爲了返回圖像,你應該有一個返回bytearray的方法,我認爲這在javascript中沒有任何用處。
我的解決方法是將圖像保存在某個位置,並將圖像的地址返回給客戶端。
更新:基於註釋,您可以將圖像的數據編碼爲Base64字符串,並在您的ajax回調中處理DATA URI。
您可以使用JSON來表示base64Encoded數據,並在阿賈克斯calklback,你可以寫這樣的:
$("#myImage").attr("src", "data:image/png;base64,RETURNED_DATA_FROM_ASMX");
下面是一個示例代碼,您的圖像轉換成C#爲Base64:
public string ImageToBase64(Image image,
System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
要了解如何格式化數據URI,您可以訪問http://en.wikipedia.org/wiki/Data_URI_scheme#Format。
相關問題
- 1. 通過ASMX Web服務
- 2. ASP.NET ASMX Web服務
- 3. Asp.net ASMX Web服務
- 4. 如何通過AJAX POST將「數據」發送到ASMX Web服務?
- 5. 如何通過asmx web服務返回圖片並在html頁面中顯示
- 6. 通過web服務傳遞圖像
- 7. 併發ASP.NET請求asmx web服務
- 8. Asp.net asmx Web服務性能
- 9. ASMX Web服務通過會話
- 10. 模型視圖Presenter plus ASP.NET Web服務; asmx在哪裏生活?
- 11. 如何生成隨機問題並通過Web服務發送?
- 12. 通過Ajax的ASMX服務調用掛起(從未完成)
- 13. 在ASP.NET中使用ajax/jquery使用asmx Web服務?
- 14. 無法通過jQuery來調用ASMX Web服務的Ajax
- 15. 如何ASP.net web服務指令添加到CodeDom中產生的.asmx文件
- 16. jquery $ .ajax與asp.net ajax消耗asmx服務
- 17. ASMX Web服務
- 18. 通過ajax ping web服務
- 19. 調用Web服務的.asmx使用AJAX
- 20. 如何在ASP.NET中加載圖像服務器端?
- 21. 通過web服務發送圖像
- 22. 如何通過.asmx Web服務獲取此請求結構?
- 23. 如何通過當前用戶憑據的.asmx Web服務
- 24. 如何通過.asmx Web服務使用phonegap FileTransfer參數
- 25. 如何通過GET調用ASMX Web服務?
- 26. 通過HTTPS的我的ASMX Web服務非常慢。如何優化它?
- 27. 如何在通過Ajax生成的錨標記中加載局部視圖
- 28. 在ASP.NET中通過AJAX從Web服務獲取對象時發生500錯誤
- 29. 如何使用wsdl生成Web服務
- 30. Web服務ASMX - WCF
我認爲至少可以生成一個數據URI,然後可以渲染它。我只看到它在ASP.Net標記中呈現,不通過AJAX傳遞。 – servarevitas3
你是對的。我想這是可能的。雖然造成圖像的開銷約30%。我認爲數據URI只是你輸入的64位編碼。所以它應該相當容易返回數據URI – Kamyar
謝謝,這是有效的。 – servarevitas3