C# 및 ASP.net을 사용하여 URL 기반 컨트롤에서 동적 이미지 가져오기

StackOverflow https://stackoverflow.com/questions/116869

  •  02-07-2019
  •  | 
  •  

문제

나는 이것이 바보 같은 질문이라는 것을 알고 있습니다.어떤 이유에서인지 내 마음은 이것에 대해 비어 있습니다.어떤 아이디어가 있나요?

죄송합니다. 더 명확했어야 했습니다.

사용하여 HtmlGenericControl 링크 설명과 이미지를 가져옵니다.

 private void InternalCreateChildControls()
    {
        if (this.DataItem != null && this.Relationships.Count > 0)
        {
            HtmlGenericControl fieldset = new HtmlGenericControl("fieldset");
            this.Controls.Add(fieldset);
            HtmlGenericControl legend = new HtmlGenericControl("legend");
            legend.InnerText = this.Caption;
            fieldset.Controls.Add(legend);

            HtmlGenericControl listControl = new HtmlGenericControl("ul");
            fieldset.Controls.Add(listControl);

            for (int i = 0; i < this.Relationships.Count; i++)
            {
                CatalogRelationshipsDataSet.CatalogRelationship relationship =
                    this.Relationships[i];

                HtmlGenericControl listItem = new HtmlGenericControl("li");
                listControl.Controls.Add(listItem);

                RelatedItemsContainer container = new RelatedItemsContainer(relationship);
                listItem.Controls.Add(container);

                Image Image = new Image();
                Image.ImageUrl = relationship.DisplayName;




                LinkButton link = new LinkButton();
                link.Text = relationship.DisplayName;



               ///ToDO Add Image or Image and description
                link.CommandName = "Redirect";
                container.Controls.Add(link);
            }
        }
    }

누군가에게 이 작업을 해달라고 요청하는 것은 아닙니다. 단지 참고 사항이나 아이디어일 뿐입니다.

감사합니다. 지나치게 좌절하고 겸손해졌습니다.

도움이 되었습니까?

해결책

URL을 기반으로 동적으로 이미지를 생성하려고 한다고 가정합니다.

내가 일반적으로 하는 일은 이미지를 제공하기 위해 매우 가벼운 HTTPHandler를 만드는 것입니다.

using System;
using System.Web;

namespace Example
{  
    public class GetImage : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString("id") != null)
            {
                // Code that uses System.Drawing to construct the image
                // ...
                context.Response.ContentType = "image/pjpeg";
                context.Response.BinaryWrite(Image);
                context.Response.End();
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

img 태그에서 이를 직접 참조할 수 있습니다.

<img src="GetImage.ashx?id=111"/>

또는 이를 수행하는 서버 컨트롤을 만들 수도 있습니다.

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Example.WebControl
{

    [ToolboxData("<{0}:DynamicImageCreator runat=server></{0}:DynamicImageCreator>")]
    public class DynamicImageCreator : Control
    {

        public int Id
        {
            get
            {
                if (ViewState["Id" + this.ID] == null)
                    return 0;
                else
                    return ViewState["Id"];
            }
            set
            {
                ViewState["Id" + this.ID] = value;
            }
        }

        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write("<img src='getImage.ashx?id=" + this.Id + "'/>");
            base.RenderContents(output);
        }
    }
}

이것은 다음과 같이 사용될 수 있습니다

<cc:DDynamicImageCreator id="db1" Id="123" runat="server/>

다른 팁

새로운 내용을 확인해보세요 DynamicImage 컨트롤 ASP.NET 팀이 CodePlex에서 릴리스했습니다.

이것은 일종의 끔찍한 질문입니다.즉, .NET에는 소스를 원하는 대로 설정할 수 있는 이미지 컨트롤이 있습니다.무엇을 논의하고 싶은지 잘 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top