Du må lave det med noget gdi+, og generere billedet fra gang til gang (du kan eventuelt cache dem).
Det er relativt enkelt at lægge noget tekst på et billede, og hvis du laver dig en handler der kan levere billeder til dig - kan du indbygge funktionaliteten i den. Så kan du lægge tekst på alle billeder - også dem du viser på knapper.
using System; using System.Web; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web.UI;
public class ImageServer: IHttpHandler { public void ProcessRequest (HttpContext context) { string imageName = context.Request.QueryString["imageName"]; string imageText = context.Request.QueryString["imageText"];
Bitmap bmp = Resources.Resource.ResourceManager.GetObject(imageName) as Bitmap;
if (bmp != null) { if (imageText != null) { using (Graphics g = Graphics.FromImage(bmp)) using (Font font = new Font("Verdana", 10, FontStyle.Regular | FontStyle.Regular)) using (SolidBrush brush = new SolidBrush(Color.Red)) { g.DrawString(String.Format(imageText), font, brush, new PointF(5F, 10F)); } }
I eksemplet hentes der et billede fra en ressource, som det ikke er sikkert at du benytter, men du har jo så nok en anden måde at hente billeder på.
Du kan pakke det lidt pænere ind i en kontrol - altså så du har en ImageTextButton eller lignende - men du skal under alle omstændigheder have muligheden for at hente det resulterende bille via en url, så imageserver-delen skal du lave.
Kan du klare dig med ovenstående?
Mvh (.Text er for øvrigt en property på en asp.net 2.0 ImageButton, men det er ikke meningen at man skal benytte den direkte - og den medfører ikke at du får printet tekst på billedet)
Tror jeg skal have lige lidt mere hjælp til den her ! jeg bruger bmp.Save(Response.OutputStream, bmp.RawFormat); til at skrive billedet ud med, men så tegner den kun mit billede og ikke resten af min side !
har du lavet det som beskrevet - altså du har en side med et billede på, og ImageUrl på dit billede er så sat til din handlers url? (du kan evt. vise al din kode). Mvh
Mht. det med din serverside form, så kan du sådan set bare lægge den på din masterpage. Det er helt almindeligt at du har en masterpage der holder form'en. Mht. til hvorvidt det skulle være en bug, så kan jeg ikke genskabe det problem du beskriver (har lavet et setup, hvor jeg lægger min form på content-siderne som du har gjort). Der er ikke noget i din løsning der ser uhendsigtsmæssigt ud - bortset fra den med at lægge forms på content-pages. Mvh
HAHA .... Ja det må du nok sige :o) Kopierer som oftest teksten inden jeg poster, så den ikke forsvinder hvis der er gået for lang tid siden jeg åbnede vinduet... Havde tydeligvis ikke det forventede i clipboardet :o)
Jeg havde blot skrevet, at ashx er normal extension for en generisk handler, hvilket blot er en klasse der implementerer interfacet IHttpHandler. Implementerer en klasse dette interface kan den fungere som handler for et request.
Og.... siden du ikke har behov for en webform, men blot skal returnere et billede - er det smart blot at lave en handler der ikke giver dig det overhead der er med en form (Page).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.