Dessiner/Siner une image en .NET

cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009 - 6 juin 2007 à 13:28
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 6 juin 2007 à 22:10
Bonjour,

Je voudrais signer un photo avant de l'afficher mais sans l'enregistrer.

Cela est-il possible ?

J'ai trouvé une source qui correspond a ce que je voudrais sauf que l'image est enregistrer :
http://www.aspfr.com/codes/CLASSE-SYSTEM-DRAWING-OU-COMMENT-DESSINER-AVEC-ASP_9029.aspx

Quelau'un a t il une solutions ?

Merci d'avance

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 24
6 juin 2007 à 22:10
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) + "[file://\\img \\img]\";
bm.Save(path + "imgTemp.gif", ImageFormat.Gif);

// Appelle une page de chargement de l'img temp
Response.Write("")

f.Dispose();
g.Dispose();
bm.Dispose();

// --------------------------------------------------------------------------
// La page de chargement : LoadImage.aspx :
// Simplement créer une webForm vide par visualStudio et dans le
// code behind 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.
0
Rejoignez-nous