[c# vs.net] Sauver une picturebox....

Sauver une picturebox.... [c# vs.net] - C#/.NET managed - Programmation

Marsh Posté le 01-03-2004 à 22:57:52    


Bonjour,
 
Je désire sauver un picturebox dans un sous répertoire, voici le code de la méthode save:
 
public void SaveImage()
    {
 pcbVue2D.Image.Save(@"D:\Aurelie 1602200\Data\image1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
 
J'ai ensuite appellé cette méthode comme cela:
 
protected internal void evtBtnSaveClick(object sender, EventArgs e)
    {
        this.frm2D.SaveImage();
    }
 
Mais lorsque je l'exécute sans débogage et que je clique sur le bouton "save" qui permet la sauvegarde, une erreure s'affiche...
D'où vient le problème?? est ce que ça pourrai venir de DirectX9?car l'image de cette picturebox est créée par DirectX9...
 
Merci d'avance, j'espère avoir été claire :s

Reply

Marsh Posté le 01-03-2004 à 22:57:52   

Reply

Marsh Posté le 01-03-2004 à 23:05:13    

PictureBox est une abomination et un des pires contrôles de Winforms
Si tu veux sauvegarder une image, le mieux est de passer par un objet Bitmap, et de l'affecter à la propriété Image du PictureBox. Ensuite, utilise la méthode Save() de Bitmap. Dans le genre :
 

Code :
  1. Bitmap bm=new Bitmap(this.pictureBox1.Width,this.pictureBox1.Height);
  2. Graphics g=Graphics.FromImage(bm);
  3. // réalise ensuite tes opérations de tracé sur g
  4. this.pictureBox1.Image=bm; // affecte le Bitmap à la propriété Image
  5. bm.Save("Image.jpg",ImageFormat.Jpeg); // Utilise la méthode Save de Bitmap


 
edit: au lieu d'écrire des trucs du genre  

Code :
  1. System.Drawing.Imaging.ImageFormat.Jpeg


utilise Using, ça rend le code plus lisible et c'est plus pratique


Message édité par Harkonnen le 01-03-2004 à 23:32:24
Reply

Marsh Posté le 02-03-2004 à 11:29:44    

Merci pour ton aide.
 
Ca m'a bien sauvegarder le contenu du picturebox, mais ya un hic, c'est que j'ai juste le "fond" du picturebox, en gros l'image créée par DirectX9 n'y est pas...
Que faire? Quelqu'un s'y connait en DirectX9?
 
Merci d'avance.

Reply

Marsh Posté le 02-03-2004 à 12:20:58    

Envoie un MP à chrisbk, LeGreg ou BJone, ils connaissent très bien DirectX et pourront certainement t'aider ;)
Et quand t'auras la réponse, poste là ici pour que ça resserve.


Message édité par Harkonnen le 02-03-2004 à 12:22:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed