Как использовать имиджевый ресурс на сайте asp.net? - PullRequest
9 голосов
/ 28 октября 2008

У меня есть сайт на c #, который использует много изображений со встроенным английским текстом.

Как использовать стандартный файл ресурсов для обмена изображениями в зависимости от языка?

У меня есть файл resx в моем каталоге App_GlobalResources, но я не могу подключить его к элементу управления asp: image для imageurl правильно.

Идеи

ОБНОВЛЕНИЕ:

Для получения дополнительной информации вот код тега изображения:

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

Результат на стороне клиента:

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

Обратите внимание, что источник явно не тот, который я ожидал ...

Ответы [ 3 ]

6 голосов
/ 28 октября 2008

вы можете сохранить URL изображения в вашем файле ресурсов и использовать следующий встроенный код в элементе управления

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

Обновление

эта ссылка может быть полезна для достижения ваших целей

или

Вы также можете попытаться сохранить ресурс в виде строки и установить значение в URL-адрес вместо сохранения изображения в файле ресурсов.

3 голосов
/ 29 октября 2008

Одна вещь, которую вы можете попытаться сделать, - это создать простой «сервис изображений», который может обслуживать изображение в правильном формате из встроенных ресурсов.

Вам не нужно создавать веб-сервис сам по себе, вы просто создаете страницу aspx и в коде позади него меняете Response.ContentType на «image / png» или любой другой формат, который вы предпочитаете. Для этого также требуется параметр get в URL-адресе самой страницы, но его можно легко отфильтровать. Таким образом, метод 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 на странице.

0 голосов
/ 04 декабря 2009

если вы используете файл глобальных ресурсов, вам нужно добавить его вот так

<img id="WelocmeICon" runat="server"  alt="welcome icon" 
     src="<%$resources:NmcResource,WelcomeIcon %>"  />

и поскольку я использую img control, я добавил runatserver и идентификатор для него

...