ASP.NET 웹 사이트에서 이미지 리소스를 사용하는 방법은 무엇입니까?
-
05-07-2019 - |
문제
영어 텍스트가 포함 된 많은 이미지를 사용하는 AC# 사이트가 있습니다.
표준 리소스 파일을 사용하여 언어에 따라 이미지를 교체하려면 어떻게해야합니까?
내 app_globalresources 디렉토리에 Resx 파일이 있지만 ImageUrl의 ASP : Image Control에 연결할 수는 없습니다.
아이디어?
업데이트:
추가 정보는 다음과 같은 이미지 태그 코드입니다.
<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 %>" />
업데이트
이것 링크 당신이 성취하려는 것에 도움이 될 수 있습니다.
또는
리소스를 문자열로 저장하고 Resouce 파일에 이미지를 저장하는 대신 URL 위치로 값을 설정하려고 시도 할 수도 있습니다.
다른 팁
당신이 시도 할 수있는 한 가지는 임베디드 리소스에서 올바른 형식으로 이미지를 제공 할 수있는 간단한 "이미지 서비스"를 만드는 것입니다.
웹 서비스 자체를 만들 필요가 없으며 단순히 ASPX 페이지를 작성하고 뒤에있는 코드에서 응답을 변경합니다 .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. 페이지를 가져 오는 것을 잊지 마십시오.
글로벌 리소스 파일을 사용하는 경우 이렇게 추가해야합니다.
<img id="WelocmeICon" runat="server" alt="welcome icon"
src="<%$resources:NmcResource,WelcomeIcon %>" />
IMG 컨트롤을 사용하기 때문에 runatserver와 id를 추가했습니다.