Calcul de position de l'image dans le mode zoom

Résolu
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009 - 4 févr. 2008 à 13:52
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009 - 4 févr. 2008 à 16:56
salut
j'ai besoin de savoir la position de l'image dans une picture box lors du mode Zoom comment peut on calcuer sa???

//as you like

1 réponse

vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009
4 févr. 2008 à 16:56
bon j'ai résolus sa ;)
        /// <summary>
        /// donne les paramètres pour la position de l'image ;)
        /// </summary>
        /// PictureBox qui contient l'image

       
        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);
            
        }


//as you like
3
Rejoignez-nous