2013-02-17 28 views
0

我是網絡開發領域的新手。我試圖從Web API返回位映射值到JavaScript的HTML頁面上顯示,但由於某種原因,它沒有這樣做,這是我的代碼:從web api導入圖片到javascript

中的WebAPI

public Bitmap gettestBitmap() 
    { 
     Bitmap theBM = new Bitmap(Properties.Resources._2_15_2013_5_08_48_PM); 

     return theBM; 
    } 

在JavaScript中,這裏是我的代碼

var callstring = "api/Generator/gettestBitmap"; 
alert(callstring); 
$.getJSON(callstring, 
function (data) { 
    alert(data);         
    anImage.dataSrc = data; 
}) 
.fail(
function (jqXHR, textStatus, err) 
{ 
    alert("All checks are correct, image was not  
      generated.\n jqXHR = " + jqXHR.responseText + "\n 
      textStatus=" + textStatus + " \n Error=" + err);}); 

的功能的WebAPI被成功地調用和回來就是System.Drawing.Bitmap而不是實際的圖像數據

任何線索如何解決這個問題?

謝謝!

回答

1

找到解決方案!!!!

只需做到以下幾點:

var callstring = "api/Generator/gettestBitmap"; 
$("#anImage").attr("src", callstring); 
0

您可能希望返回一個字節數組,而不是在發送到客戶端之前將其進行base64編碼。

public byte[] gettestBitmap() 
    { 
     var imageBytes = File.ReadAllBytes(Properties.Resources._2_15_2013_5_08_48_PM); 

    return imageBytes; 
    } 

您可能還想更改圖像行。

anImage.attr("src", "data:image/png;base64," + data); // if format is jpeg change image/png to image/jpeg 
+0

感謝您的回答,我嘗試了建議的代碼,在該行'theBM.Save(MS,theBM.RawFormat);'我得到一個異常:'{ 「值不能爲空。\ r \ n參數名稱:編碼器」}「任何原因? – user1415780 2013-02-17 08:15:51

+0

@ user1415780圖像的格式是什麼?它在文件系統上嗎? Properties.Resources._2_15_2013_5_08_48_PM是否直接指向圖像?您在迴應後可能需要稍微修改一下代碼。 – scartag 2013-02-17 08:20:34

+0

圖像是PNG格式,它保存在項目資源中,是的,它直接指向圖像 – user1415780 2013-02-17 08:34:32