現在、ASP.Net ASMX Web サービス内の関数を使用して System.Drawing.Image を生成しています。この画像を(pngなどに変換した後)AJAX呼び出しへの応答としてブラウザに渡したいと思います。(jQuery の $.ajax を使用)。私はグーグルをしてきましたが、それが可能であると確信していますが、その方法を見つけることができないようです. 最初にどういうわけかそれをデータURIに変換しますか、それとも何ですか?
質問する
2164 次
1 に答える
2
私はあなたがそれを行うことができるとは思わない. 画像を返すには、javascript では役に立たないと思う bytearray を返すメソッドが必要です。
私の回避策は、画像を特定の場所に保存し、画像のアドレスをクライアント側に返すことです。
更新: コメントに基づいて、画像のデータを Base64 文字列にエンコードし、ajax コールバックで DATA URI を処理できます。
JSON を使用して base64Encoded データを表すことができ、ajax 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;
}
}
DATA URI をフォーマットする方法については、http://en.wikipedia.org/wiki/Data_URI_scheme#Formatにアクセスしてください。
于 2012-10-03T21:02:22.653 に答える