begin process at 2010 02 09 23:21:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimédia

 > PETITE CLASSE POUR DESSINER UN RECTANGLE DE SELECTION DANS UN PICTUREBOX

PETITE CLASSE POUR DESSINER UN RECTANGLE DE SELECTION DANS UN PICTUREBOX


 Information sur la source

Note :
Aucune note
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é :7 998 / 503

Auteur : vboussema

Ecrire un message privé
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

Les Membres Club peuvent 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 );

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CLASSE POUR LISTER LES REPERTOIRES D'UN SERVEUR DISTANT EN U...
Source avec Zip Source avec une capture Source .NET (Dotnet) USER CONTROL DATETIMERPICKER PERSONNALISÉ

 Sources de la même categorie

Source avec Zip REDIMENSION D'IMAGE EN C# par VinceMonkeyz
Source avec Zip Source avec une capture Source .NET (Dotnet) SOUND EDITOR - UN PETIT LOGICIEL DE DSP AUDIO par MaxSoldier
Source avec Zip Source avec une capture Source .NET (Dotnet) "SURFACE LIKE" EN SILVERLIGHT par Malkuth
Source avec Zip Source avec une capture Source .NET (Dotnet) LAMINE PLAYER par ouadjaout
Source avec Zip Source avec une capture Source .NET (Dotnet) PROJET EDUCATIF : CD INTERACTIF DU PROJET PUISSANCE QUATRE. par mechtaly

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) RECTANGLES par krissssss
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET 2] ORDONNANCEMENT ET AFFICHAGE D'EVENEMENT DANS LE TEM... par TeBeCo
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DES COMBOBOX par sebmafate
Source avec Zip Source avec une capture Source .NET (Dotnet) CUSTOM COMBOBOX / PERSONNALISER UN COMBOBOX par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) ROUNDEDRECTANGLE : CRÉEZ DES RECTANGLES AVEC DES COINS ARRON... par sebmafate

Commentaires et avis

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 !?

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

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

Salut,

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

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.

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

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

Commentaire de vboussema le 04/02/2008 09:45:26

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

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]


;)

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 ?

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

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

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

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 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 Dessiner un simple rectangle [ par Yoteco ] Bonjour, J'aimerais dessiner un simple rectangle au centre de ma fen&#234;tre qui mesure 300 x 300 pixels Mais je n'y arrive pas !!! voici mon code


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales