所以我有一个ashx文件,可以创建一个带有文字的图像。
//create the image for the string
Font f = new Font("Arial", 15F);
Graphics g = Graphics.FromImage(b);
SolidBrush whiteBrush = new SolidBrush(Color.FromArgb(0,71,133));
SolidBrush blackBrush = new SolidBrush(Color.White);
RectangleF canvas = new RectangleF(0, 0, 105, 45);
g.FillRectangle(whiteBrush, canvas);
context.Session["test"] = randomString;
g.DrawString(context.Session["test"].ToString(), f, blackBrush, canvas);
context.Response.ContentType = "image/gif";
b.Save(context.Response.OutputStream, ImageFormat.Gif);
调用时,它会创建我想要的图像,但意识到它没有用于辅助功能目的的alt文本选项。
有关如何向图像添加替代文字的任何想法吗?
在我的aspx页面中,我有这个:
<asp:Image ID="myImage" class="styleimage" src="ImageMaker.ashx" runat="server"/>
我试过了:
myImage.AlternateText = HttpContext.Current.Session["test"].ToString();
我收到了NullReferenceException
。
这显然是因为Session["test"]
在页面加载后填充(因此页面加载,图像被渲染,然后处理程序被调用)。
我该如何解决这个问题?
答案 0 :(得分:1)
您可以在page_load中创建会话变量,并在其中分配randomString
。
然后,您将能够在处理程序中访问它以用于创建图像。
这样,您可以按照不同事件的时间表进行操作:
答案 1 :(得分:0)
alt-text属于img-tag,它引用处理程序创建的图像。只需将alt标签放在那里就可以了。