10
votes

Comment enregistrer une commande de photo-boîte en tant que fichier JPEG après son édition

J'ai un imagesbox code> sur l'application Formulaires Windows.

Je charge une image dedans et j'ai activé l'événement peinture code> dans mon code. Il dessine un rectangle. P>

comme ceci: p> xxx pré>

et je clique sur le bouton "Enregistrer": p>

private void button2_Click(object sender, EventArgs e)
{
    pictureBox1.Image.Save(@"C:\Documents and Settings\tr1g3800\Desktop\WALKING\30P\100000test.jpg",ImageFormat.Jpeg);
}


0 commentaires

5 Réponses :


1
votes

Vous avez besoin de peinture à l'image de la photo, pas au contrôle graphique sur l'événement de peinture.

EDIT: strong> p>

using( Graphics g = Graphics.FromImage( pictureBox1.Image ) ) {
    // there you will be do, what you do in Paint event
}

// ... somewhere else ...
pictureBox1.Save( _required_parameters_ );


1 commentaires

Salut pouvez-vous clarifier / donner un exemple?



5
votes

Vous ne devriez probablement pas dessiner directement sur la photo.

Vous devez plutôt utiliser un bitmap à la place. Essayez de mettre le bitmap dans la photobox.Image, puis appelle Enregistrer ().

Vérifier cette Pour plus de détails


0 commentaires

6
votes

Merci. Avez-vous des anwers tous aidés. Cela a fonctionné xxx


1 commentaires

Vous devez utiliser le modèle "Utiliser (...) {...}". Maintenant, vous pouvez avoir des fuites de mémoire. Et si certaines réponses résolvent votre réponse, vous devez l'accepter;).



4
votes

Voici ma solution avec un support supplémentaire à divers types de fichiers: xxx


0 commentaires

3
votes

Voici un petit exemple qui a clarifié quelques choses pour moi (je me suis battu avec cela un peu aussi).

pbox est une boîte à images sur Form1, le rend au moins 50x50

AppPath a été dérivé de System.Reflection mais utilisez n'importe quel chemin que vous aimez

Il y a deux boutons, un pour le dessin , une pour sauvegarder, leurs événements de clic sont dans le code ci-dessous.

choses que j'ai appris:

(1) "pbox.image =" ne fait rien d'autre que d'initialiser la baisse Image, il ne doit pas nécessairement être un nom de fichier comme chaque exemple que j'ai trouvé utilisé (avaient un problème d'économie à ce même fichier car il était verrouillé). De plus, si votre objectif est de voir les choses sur la surface de la commande entière, vous aimerez probablement définir la taille à l'initialisation de la taille de la taille dont vous avez besoin. J'ai utilisé la taille de la boîte de la boîte dans cet exemple, mais normalement, j'utilise la taille du bitmap (car je commence généralement par un vrai fichier d'image).

(2) J'ai toujours eu des problèmes de voir mes tirages apparaissent sur le contrôle ou voir mes modifications enregistrées dans le fichier de sortie (ou les deux). Dans mes tentatives préalables, je reproduisiez les tirages à la fois sur le contrôle et sur le bitmap. Bien sûr que ce n'est pas nécessaire, mais le bitmap édité doit être rechargé dans le contrôle.Image ... et c'était le morceau de ce casse-tête que j'avais manqué.

(a) Créez un bitmap à partir du contrôle.Image et dessinez sur le bitmap

(b) charger le bitmap dans le contrôle.Image (afin que vous puissiez voir les modifications causées par Le tirage au sort)

(c) enregistrer la commande.Image

(option 2-option) Vous avez un bitmap global (ou passé) (probablement à partir d'un vrai fichier)

(a) dessine sur le bitmap

(b) charger le bitmap dans le contrôle.Image (afin que vous puissiez voir les modifications)

(c) enregistrer le bitmap < / p> xxx


0 commentaires