Come utilizzare la risorsa immagine nel sito Web asp.net?
-
05-07-2019 - |
Domanda
Ho un sito c # che fa uso di molte immagini con testo inglese incorporato.
Come posso utilizzare un file di risorse standard per scambiare immagini a seconda della lingua?
Ho un file resx nella mia directory App_GlobalResources, ma non riesco a inserirlo correttamente in un asp: controllo immagine per imageurl.
idee?
AGGIORNAMENTO:
Per ulteriori informazioni, ecco il codice del tag immagine:
<asp:image runat="server" ID="img2" ImageUrl="<%$Resources: Resource, cs_logo %>" />
Il risultato sul lato client è:
<img id="img2" src="System.Drawing.Bitmap" style="border-width:0px;" />
Nota che la fonte ovviamente non è quella che mi aspettavo ...
Soluzione
è possibile memorizzare l'URL dell'immagine nel file di risorse e utilizzare il seguente codice incorporato nel controllo
<asp:Image ImageUrl="<%$resources:Image1 %>" />
Aggiornamento
questo link potrebbe essere utile per ciò che stai cercando di realizzare
o
puoi anche provare a archiviare la risorsa come stringa e impostare il valore nella posizione dell'URL invece di memorizzare l'immagine nel file di risorse.
Altri suggerimenti
Una cosa che potresti provare a fare è creare un semplice "servizio di immagini" che può servire l'immagine nel formato corretto dalle risorse incorporate.
Non devi creare il servizio web stesso, devi semplicemente creare una pagina aspx e nel codice dietro di te modifichi il Response.ContentType in "quot / image / png". o qualunque sia il formato che preferisci. Ciò richiede anche un parametro get nell'URL della pagina stessa, ma può essere facilmente filtrato. Quindi il metodo Page_Load del tuo servizio di immagine potrebbe essere simile al seguente:
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
Quindi di nuovo sulla tua pagina ASPX hai ...
<asp:Image ImageUrl="http://localhost/GetImage.aspx?ImageName=Image1" />
Oh, e non dimenticare di importare System.Drawing e System.Drawing.Imaging nella pagina.
se si utilizza un file di risorse globali è necessario aggiungerlo in questo modo
<img id="WelocmeICon" runat="server" alt="welcome icon"
src="<%$resources:NmcResource,WelcomeIcon %>" />
e poiché utilizzo il controllo img ho aggiunto runatserver e id per esso