Asp.net

如何在asp.net網站中使用圖片資源?

  • December 16, 2009

我有 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;" />

請注意,來源顯然不是我所期望的……

您可以將圖像的 url 儲存在資源文件中,並在控制項中使用以下內聯程式碼

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

更新

連結可能對您要完成的工作有所幫助

或者

您還可以嘗試將資源儲存為字元串並將值設置為 url 位置,而不是將圖像儲存在資源文件中。

您可能會嘗試做的一件事是創建一個簡單的“圖像服務”,它可以從嵌入的資源中以適當的格式提供圖像。

您不必自己創建 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。

引用自:https://stackoverflow.com/questions/244807