Calculer taille image et afficher [RESOLU]

Calculer taille image et afficher [RESOLU] - C#/.NET managed - Programmation

Marsh Posté le 14-04-2015 à 21:58:46    

Bonsoir à tous,  
je travaille sur c# depuis quelques jours et j'ai une question en suspens . . .  
J'ai une picturebox avec une image (couleur) et je souhaite extraire la taille (H et L) et afficher dans un textbox/
 
Le problème, je n'arrive pas à afficher le resultat.
Voici mon code si quelqu'un veut me donner un coup de main ou m'aiguiller.
 
 
Merci @ tous et bonne soirée
 

Code :
  1. public void Txtbox2_TextChanged(object sender, EventArgs e)
  2.         {
  3.             Bitmap picture = (Bitmap)this.pictureBox1.Image;
  4.             if (picture != null)
  5.             {
  6.                 int b = afficher_taille_Width(picture);
  7.                 this.Txtbox2.Text = b.ToString();
  8.                 Txtbox1.Show();
  9.             }


 

Code :
  1. private int afficher_taille_Height(Bitmap picture)
  2.         {
  3.             int b = -1;
  4.             b = picture.Height;
  5.             return b;
  6. private int afficher_taille_Width(Bitmap picture)
  7.         {
  8.             int a = -1;
  9.             a= picture.Width;
  10.             return a;
  11.            
  12.         }
  13.         }


Message édité par clubber43 le 20-04-2015 à 10:55:47

---------------
Merci
Reply

Marsh Posté le 14-04-2015 à 21:58:46   

Reply

Marsh Posté le 14-04-2015 à 23:37:44    

A vue d'oeil je vois déjà quelques problèmes :
 
1) Tu fais appel à TextChanged qui va s'activer uniquement si on change la valeur de ta TextBox ...
 
2) Apparemment tu te sers déjà d'une PictureBox qui est un contrôle pour afficher des images, alors pourquoi veux-tu absolument utiliser des méthodes que tu écris toi même alors que t'as déjà toutes les propriétés sous le coude, avec PictureBox.Image ?
 
3) Les méthodes sont donc inutiles
 
Édite ton fichier Designer.cs au niveau de ta TextBox

Code :
  1. this.textBox1.Text = pictureBox1.Image.Height.ToString();

Reply

Marsh Posté le 15-04-2015 à 08:10:55    

Salut :)
 
Merci pour les explications.
Du coup pas besoins de créer des méthodes, je peux directement passé au niveau TextBox.
Et si je viens à changer d'image, les data seront mises à jour dans ma TextBox?
 
Même directive pour savoir si les images sont en RGB, ou NDG du coup? je peux utiliser une méthode de la TextBox ?
 
 
J'essaie cela ce soir et je vous remercie pour l'aide.
 
 
@+ et merci pour l'aide


---------------
Merci
Reply

Marsh Posté le 15-04-2015 à 18:30:47    

J'ai changé mon script, mais pas d'affichage sur mon Form1 . . .  
Je vois pas ce que j'ai pu oublié (:
 
JE joints une partie de mon code
 

Code :
  1. // Txtbox1
  2.             //  
  3.             this.Txtbox1.Enabled = false;
  4.             this.Txtbox1.Location = new System.Drawing.Point(464, 246);
  5.             this.Txtbox1.Name = "Txtbox1";
  6.             this.Txtbox1.Size = new System.Drawing.Size(58, 20);
  7.             this.Txtbox1.TabIndex = 5;
  8.             this.Txtbox1.TextChanged += new System.EventHandler(this.Txtbox1_TextChanged);


 
 

Code :
  1. this.Txtbox2.Enabled = false;
  2.             this.Txtbox2.Location = new System.Drawing.Point(581, 246);
  3.             this.Txtbox2.Name = "Txtbox2";
  4.             this.Txtbox2.Size = new System.Drawing.Size(59, 20);
  5.             this.Txtbox2.TabIndex = 8;
  6.             this.Txtbox2.TextChanged += new System.EventHandler(this.Txtbox2_TextChanged);


 
 

Code :
  1. private void Txtbox1_TextChanged(object sender, EventArgs e)
  2.         {
  3.             this.Txtbox1.Text = pictureBox1.Image.Height.ToString();
  4.             Txtbox1.Show();
  5.         }
  6.         private void Txtbox2_TextChanged(object sender, EventArgs e)
  7.         {
  8.             this.Txtbox2.Text = pictureBox1.Image.Width.ToString();
  9.             Txtbox2.Show();
  10.         }



---------------
Merci
Reply

Marsh Posté le 15-04-2015 à 21:22:10    

Qu'est ce que tu essaies de faire ?
Si tu pouvais nous faire un résumé concis du contenu de ton form on y verrait plus clair.
De ce que je vois tu demandes au programme de :
- si l'utilisateur modifie manuellement la Txtbox1 (si il écrit quelque chose dedans)
    Alors on change le contenu de cette box par la hauteur de l'image
 
A quoi ça sert de faire ça ?
D'ailleurs je ne vois pas de

Code :
  1. this.textBox1.Text = pictureBox1.Image.Height.ToString();

Reply

Marsh Posté le 16-04-2015 à 15:46:20    

Pareil, je ne comprend rien à ce que tu tentes de bricoler avec tes textboxes.
Fais plutôt un bouton pour déclencher ton action, avec
MessageBox.Show(pictureBox1.Image.Height.ToString());
MessageBox.Show(pictureBox1.Image.Width.ToString());

 

J'ai l'impression que tu n'as pas du tout un problème d'image et de taille, mais de compréhension des principes basiques de la prog événementielle et de winform...
Essaie au moins de poser clairement ton problème, parce que si ça n'est pas clair quand tu l'expliques ça ne l'est certainement pas non plus pour toi.


Message édité par TotalRecall le 16-04-2015 à 15:47:50

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 16-04-2015 à 21:36:43    

En fait, je souhaite charger une image dans un picturebox.
Lorsque je charge l'imag, la taille (Hauteur*Largeur*plans couleurs) est affiché.
 
J'avais donc pensé à un textbox pour afficher la taille de l'image.
 
Du coup j'ai créé un form avec un picturebox, un bouton menu où charger l'image et quitter l'appli.
Un textbox pour afficher la taille. l'utilisateur ne doit rien rentrer comme valeur.  
 
 
J'espere que mes explications sont claires, je débute en c# et je ne sais pas tout à fait comment faire...
Merci de me consacrer du temps en tout les cas :)
 
Merci


---------------
Merci
Reply

Marsh Posté le 17-04-2015 à 08:57:36    

Le code que tu as écrit, où tu utilises l'événement TextChanged, dit que c'est quand l'utilisateur vient taper DANS la TextBox qu'il se passe quelque chose.  
 
Donc :  
Supprime tes TextChanged qui ne servent à rien
 
Ajoute sur ta form un bouton (ou menu comme tu as déjà fait ça), une picturebox, et enfin deux textbox
 
Dans l'événement Click de ton bouton,  
- charge l'image dans la PictureBox  
- récupère les width/height comme tu sais déjà faire et assigne les à tes deux textboxes
Et voilà, si j'ai bien compris ça devrait faire ce que tu voulais


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 17-04-2015 à 09:25:18    

C'est bien cela que je souhaitais :)
Je vais modifier mon code et merci pour le coup de main !!
 
 
 


---------------
Merci
Reply

Sujets relatifs:

Leave a Replay

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