0

私は簡単だと思った何かに固執しています。Imageオブジェクトを返すDLLがあります。その画像をウェブページに表示する方法がわかりません。

私はいくつかの方法を試し、100万の異なるバリエーションをグーグルで検索しました。

HtmlImageや単純なimgのようなページ上の要素にImageオブジェクトをバインドすることはできませんか?

または、画像をストリームに変換する必要がありますか?またはビットマップ?私は本当に立ち往生しています!

助けていただければ幸いです.....

V

4

3 に答える 3

2

Asp.Net WebForm で最も簡単な方法は、カスタム ashx ファイルを作成することです。

Visual Studio で、新しいカスタム ハンドラーを作成します (Visual Studio のテンプレートの名前がわかりません)。これにより、.ashx ファイルが作成されます。

このハンドラーのコードでは、次のように記述します (構文をテストするために VS を使用していません)。

public void ProcessRequest(System.Web.HttpContext context)
{

   byte[] raw; 
   using(var ms = new MemoryStream()){
       Image myImage = GetFromDll();
       myImage.Save(ms, ImageFormat.Png);
       raw=ms.ToArray();
   }
   context.Response.ContentType = "image/png";
   context.Response.BinaryWrite(raw);
}

次に、ブラウザで次の場所に移動します。http://yourserver/app/yourhandler.ashx.

url パラメータを追加したい場合は、Request.QueryString コレクションから取得できます。

于 2012-06-08T12:47:26.387 に答える
1

それは束縛ほど単純ではありません。クライアント側では、画像は別の GET リクエストとして Web サーバーから取得されます。つまり、画像に解決される URL が必要です。Asif が提案したように、もう 1 つのオプションは、画像を Base64 文字列として HTML に埋め込むことです。これは共有画像の悪い習慣です (Steve B のコメントを参照)。

URL (MVC で画像ファイルを返すルート、または WebForms で適切なコンテンツ タイプと Response.Write を含むカスタム ページを返すルート) を提供するか、html に埋め込む必要があります。

編集: カスタム HTTP ハンドラーを含む 3 番目のオプションもあります。これらには、アプリ フレームワークをバイパスし、コンテンツを Web サーバーからほぼ直接提供できるという利点があります。MSDNを参照してください。

于 2012-06-08T12:39:02.120 に答える
0

画像をbase64文字列に変換してから、<img/>タグに設定します。 <img/>画像をbase64文字列で表示できます。

または、画像を保存して、のパスを使用することもできます<img/>

于 2012-06-08T12:20:07.963 に答える