Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PETITE CLASSE POUR DESSINER UN RECTANGLE DE SELECTION DANS UN PICTUREBOX


Information sur la source

Catégorie :Multimédia Source .NET ( DotNet ) Classé sous : rectangle, dessiner, selection, selectionner, limites Niveau : Initié Date de création : 02/02/2008 Date de mise à jour : 04/02/2008 09:42:48 Vu / téléchargé: 6 479 / 395

Note :
Aucune note

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
c'est une petite classe qui permet de dessiner un rectangle de sélection dans une PictureBox sans dépasser les limites de cette PictureBox il peut servire comme un petit outil pour la selection ensuite dans une application graphique ;)

 

Conclusion

c'est une petite classe que j'ai fait grace à l'aide de Lutinore
qui a écrit un petit bout de code et pour les limites de pictureBox c'est de ma programmation ;)
j'espère que ça aide quelqun car j'ai trops cherché une chose pareille mais j'ai pas trouvé surtout que l'utilisation de controlPaint n'est pas utils dans mon cas car elle permet de selectionner mêm autre controls puisqu'elle écrit au dessus de l'écran
merci de mettre vos commantaires
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 février 2008 09:42:48 :
modification dans onPaint() base.OnPaint( e );

Commentaires et avis

signaler à un administrateur
Commentaire de Lutinore le 02/02/2008 18:34:24 administrateur CS

Merci mais là il me semble que le code est incomplet, tu n'aurais pas oublié de dessiner l'image sous la sélection !?

signaler à un administrateur
Commentaire de vboussema le 02/02/2008 21:53:07

merci Lutinore  pour ton commentaire
pour mon controle je veut que la selection soit visible
peut etre oui j'ai fait  base.OnPaint( e ); en commantaire par faute :( mais j'ai corrigé sa en principe ;)
sinon c bon la source???
ah j'ai oublié quand je passe on mode zoome il y a une faute car la dimention de l'image affiché n'est pas celle du pictureBox donc il faut a priori calculer les vrai dimentions de l'image j'ai pas resolus ce problème jusqu'a maintenant si tu as une idée merci

signaler à un administrateur
Commentaire de coq le 03/02/2008 01:13:10 administrateur CS

Salut,

Mais pourquoi personne n'aime ControlPaint.DrawReversibleFrame ? :-)

signaler à un administrateur
Commentaire de vboussema le 03/02/2008 07:38:36

bon coq pour drawReversibleFrame son inconvignant c que lorsqu'on dessine le rectangle de sélection il s'affiche sur l'écran donc s'il y a un control au dessus du pictureBox il va etre affecté par le rectangle de sélection et pas le pic en plus ce problème est plus grave si on veut rendre le rectangle persistant(ne pas l'éffacer dans  le onMouseUp)
sinon c plus simple ;)
bien sure pour que le rectangle de sélection ne dépasse pas les  limites du picturebox il faut bien gérer les rectangles.

signaler à un administrateur
Commentaire de Lutinore le 04/02/2008 09:25:27 administrateur CS

Ca ne marche pas car "base.OnPaint( e );" est toujours en commentaire.

signaler à un administrateur
Commentaire de vboussema le 04/02/2008 09:45:26

c'est bon j'ai modifié la source
elle marche maintenant ;)

signaler à un administrateur
Commentaire de vboussema le 04/02/2008 17:10:46

on ajoute cette méthode pour savoir les coordonnées des  
points extrèmes de l'image en mode zoome
[code]    

   /// <summary>
        /// donne les paramètres pour la position de l'image ;)
        /// </summary>
        /// <param name="pbox">PictureBox qui contient l'image</param>
      
        public void OffsetOfImage(PictureBox pbox)
        {
            // Calculer les taux d'étirement/compression de l'image
            float xRatio = 1F;
            float yRatio = 1F;
        
            if (pbox.SizeMode == PictureBoxSizeMode.Zoom)
            {
                float a = (float)pbox.Height / (float)pbox.Image.Height;
                float b = (float)pbox.Width / (float)pbox.Image.Width;
                xRatio = Math.Min(a, b);
                yRatio = xRatio;
            }
            //// Calculer la taille de l'image affichée
             Size imgs = new Size((int)(pbox.Image.Width * xRatio), (int)(pbox.Image.Height * yRatio));
//calculer les différances entre l'image et le picturebox
           int diffx = (int)((pbox.Width - pbox.Image.Width * xRatio) / 2);
            int diffy = (int)((pbox.Height - pbox.Image.Height * yRatio) / 2);
          
           //min est le point minimum le plus haut à gauche de l'image
            min.X = diffx;
            min.Y = diffy;
//max est le point le plus bax à droite de l'image
            max.X = (int)(diffx + imgs.Width);
            max.Y = (int)(diffy + imgs.Height);
            
        }
[/code]


;)

signaler à un administrateur
Commentaire de csarlin le 20/02/2008 15:31:41

Alors moi je recherche EXACTEMENT la même chose, mais sous vb...  Quelqu'un peut m'aider ?

signaler à un administrateur
Commentaire de Lutinore le 20/02/2008 17:55:04 administrateur CS

Colle le code du fichier Dash.cs là : http://tools.codes-sources.com/DotNetCodeConverter.aspx , ça devrait donner quelque chose qui ressemble à du VB.NET

signaler à un administrateur
Commentaire de kgb1917 le 04/06/2008 19:29:52

Bonjour,

J'aimerai votre aide sur le point suivant. J'ai suivi le conseil de Lutinore pour passer le code en vb mais j'ai le pb suivant :
Quand je dessine un rectangle vers la droite et le bas, si la souris dépasse le contrôle, les pointillés du rectangle ne "s'arrêtent" pas aux  limites du contrôle (que ce soit à droite ou à gauche). ça fonctionne sans problème pour les bords haut et gauche du contrôle.

Je ne parviens pas à résoudre le pb sous vb alors qu'en c#, ça fonctionne très bien (Merci à vboussema).

Pourriez-vous m'aider  (1 journée et demie que je suis dessus.) ?

Merci d'avance

signaler à un administrateur
Commentaire de AP08 le 25/02/2009 17:22:20

Bonjour , merci pour ce jolie petit projet qui ma bien servi , mais j'ai encore un petiti problème je sui sdébutant en C# et j'aimerai introduire à la form principale un bouton qui permettra de changer l'image cad

ON selectionne la zone (le rectangle en pointié)
On clique sur le bouton
et la picturebox ici :dash1.Image = l'interieur de la zone sélectionné

Mais je cale je ne sais pas comment récuperer ce qu'il y a dans le rectangle selectionné

Est ce que quelqu'un aurait une idée ça serai super aimable... !

Merci d'avance

Alex

signaler à un administrateur
Commentaire de vboussema le 26/02/2009 11:46:20

public static Image Crop(Image image, Rectangle selection)
{
    Bitmap bmp = image as Bitmap;

    // Check if it is a bitmap:
    if (bmp == null)
        throw new ArgumentException("No valid bitmap");

    // Crop the image:
    Bitmap cropBmp = bmp.Clone(selection, bmp.PixelFormat);

    // Release the resources:
    image.Dispose();

    return cropBmp;
}


cette méthode peut t'aider(http://www.codeproject.com/KB/graphics/CroppingImages.aspx)
il suffit de l'appliquer avec :
picturebox.image=crop(picturebox.image,rect);
et c'est tout :)
donc il suffit de faire clone sur l'image a partir du rectangle de sélection

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

dessiner rectangle de selection dans pictureBox [ par vboussema ] salutj'aime dessiner un rectangle de selection sur un PictureBox situé dans un panelet j'aime que la selection ne dépasse pas le picture box donc la m problème dans le dessin d'un rectangle [ par vboussema ] je veut dessiner un rectangle de selectionaprès détecter les positions du rectangle par le mousemove et mouse down je fait un overrde pour la méthode Dessiner rectangle de sélection [ par jesaipa_1 ] Slt a tous je voualis savoir cmt fait-on enfin cmt sappel la fonction qui dessine le rectangle en pointill&#233; kan on selection un truc sur une page Rectangle de selection [ par fabmas ] Bonjour,je cherche a dessiner un rectangle de selction dont je pourrais modifier la taille par la suitepour le dessin, pas de soucis j'utilise :Contro DESSINER plusieus rectangle dans un panel et qui sont aligné verticalement [ par fayrous ] salut, dans ma form j'ai seulement une panel à l'éxècution il m'a affiche que seulement un rectangle et l'éxècution ne s'arrête pas. voila le code dessiner en c# [ par baby85 ] salut,je veux dessiner un rectangle et dans ce rectangle je veux desssiner une cercle de rayon r et des cordonnée a,bmon prbleme est je veux dessiner dessiner un rectangle de selection sur un panel [ par vboussema ] salutj'aime dessiner sur une forme qui contient un panel qui contient une picturebox un rectangle de selection de telle sorte que le rectangle ne pare Selection d'une tabPage [ par metosCS ] j'ai plusieurs tabpages dans un tabcontrol. je peux bien evidemment selectionner n'importe laquelle en cliquant dessus, mais comment faire à partir d' dessiner un rectangle sur les controles [ par LeGnuff ] Bonjour !j'ai un objget Graphics associé à une formj'aurais aimé savoir s'il y avait un moyen d'utiliser la méthodeGraphics.DrawRectangle(...) en fais dessiner un rectangle [ par messa123 ] je veut savoir comment dessiner un rectangle et un ellipse dans une forme l'orsqu'on clique sur la formerepondez moi s.v.pmerci


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.