9

英語のテキストが埋め込まれた多くの画像を利用する ac# サイトがあります。

標準リソース ファイルを使用して、言語に応じて画像を入れ替えるにはどうすればよいですか?

App_GlobalResources ディレクトリに resx ファイルがありますが、imageurl の asp:image コントロールに正しくプラグインできないようです。

アイデア?

アップデート:

詳細については、イメージ タグ コードを次に示します。

<asp:image runat="server" ID="img2" ImageUrl="<%$Resources: Resource, cs_logo %>" />

クライアント側の結果は次のとおりです。

<img id="img2" src="System.Drawing.Bitmap" style="border-width:0px;" />

ソースは明らかに私が期待したものではないことに注意してください...

4

3 に答える 3

6

画像の URL をリソース ファイルに保存し、コントロールで次のインライン コードを使用できます。

<asp:Image ImageUrl="<%$resources:Image1 %>" />

アップデート

このリンクは、達成しようとしていることに役立つ可能性があります

また

リソース ファイルに画像を保存する代わりに、リソースを文字列として保存し、値を URL の場所に設定することもできます。

于 2008-10-28T20:51:38.487 に答える
3

試みられることの 1 つは、埋め込まれたリソースから適切な形式で画像を提供できる単純な「画像サービス」を作成することです。

Web サービス自体を作成する必要はありません。単に aspx ページを作成し、コード ビハインドで Response.ContentType を「image/png」または任意の形式に変更します。これには、ページ自体への URL に get パラメータも必要ですが、これは簡単にフィルタリングできます。したがって、イメージ サービスの Page_Load メソッドは次のようになります。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

      Dim FinalBitmap As Bitmap
      Dim strRenderSource As String
      Dim msStream As New MemoryStream()

      strRenderSource = Request.Params("ImageName").ToString()

      ' Write your code here that gets the image from the app resources.
      FinalBitmap = New Bitmap(Me.Resources(strRenderSource))
      FinalBitmap.Save(msStream, ImageFormat.Png)

      Response.Clear()
      Response.ContentType = "image/png"

      msStream.WriteTo(Response.OutputStream)

      If Not IsNothing(FinalBitmap) Then FinalBitmap.Dispose()

End Sub

次に、あなたが持っているASPXページに戻ります...

<asp:Image ImageUrl="http://localhost/GetImage.aspx?ImageName=Image1" />

ああ、System.Drawing と System.Drawing.Imaging をページにインポートすることを忘れないでください。

于 2008-10-28T22:36:04.643 に答える