Si j'ai bien compris, tu veux écrire quelque chose sur l'image avant de l'afficher et sans la sauvegarder ?
A mon avis,
Il faut passer par une page de chargement d'une image temporaire :
// L'image de départ
Bitmap bm = new Bitmap(ResolveUrl("~/img/image.bmp"));
Graphics g = Graphics.FromImage(bm);
// Ecrit dessus
Font f = new Font("Verdana", 8);
g.DrawString("un texte", f, Brushes.White, X, Y);
// Sauve img temporaire en gif (sera écrasée au prochain appel)
HttpRequest http = Context.Request;
string path = http.MapPath(http.ApplicationPath) + "\\img\\";
bm.Save(path + "imgTemp.gif", ImageFormat.Gif);
// Appelle une page de chargement de l'img temp
Response.Write("<img src='LoadImage.aspx?path=" +
path + "&src=imgTemp.gif'>")
f.Dispose();
g.Dispose();
bm.Dispose();
// --------------------------------------------------------------------------
// La page de chargement : LoadImage.aspx :
// Simplement créer une webForm vide par visualStudio et dans le
// codebehind faire une réponse binaire des octets de l'image :
private void Page_Load(object sender, System.EventArgs e)
{
string fileName = Request.QueryString["src"];
string filePath = Request.QueryString["path"];
string fullPath = filePath + "\\" + fileName;
FileStream fileStream = new FileStream(fullPath, FileMode.Open);
long fileSize = fileStream.Length;
byte[] buffer = new byte[fileSize];
fileStream.Read(buffer, 0, (int)fileSize);
fileStream.Close();
Response.BinaryWrite(buffer);
}
Voilà, j'ai pas testé mais ça devrait marcher.
Désolé mais c'est du C#, facilement transcriptible en vb.