locked
Comment redimensionner une image au téléchargement RRS feed

  • Discussion générale

  • Vous pouvez utiliser cette méthode pour changer la dimension d’une image a upload:

     

    using System.Drawing; 
    using System.Drawing.Imaging; 
    
    public void ResizeFromStream(string ImageSavePath, int MaxSideSize, Stream Buffer)
            {
                int intNewWidth;
                int intNewHeight;
                System.Drawing.Image imgInput = System.Drawing.Image.FromStream(Buffer); 
    
                //determiner le format d’image
                ImageFormat fmtImageFormat = imgInput.RawFormat; 
    
                //prendre la hauteur et largeur de l’image 
                int intOldWidth = imgInput.Width;
                int intOldHeight = imgInput.Height; 
    
                //determiner si paysage ou portrait 
                int intMaxSide;
    
                if (intOldWidth >= intOldHeight)
                {
                    intMaxSide = intOldWidth;
                }
                else
                {
                    intMaxSide = intOldHeight;
                } 
    
                if (intMaxSide > MaxSideSize)
                {
                    //determiner la nouvelle hauteur et largeur
                    double dblCoef = MaxSideSize / (double)intMaxSide;
                    intNewWidth = Convert.ToInt32(dblCoef * intOldWidth);
                    intNewHeight = Convert.ToInt32(dblCoef * intOldHeight);
                }
                else
                {
                    intNewWidth = intOldWidth;
                    intNewHeight = intOldHeight;
                }
                //creer la nouvelle image
                Bitmap bmpResized = new Bitmap(imgInput, intNewWidth, intNewHeight); 
    
                //enregistrer l’image sur le disque
                bmpResized.Save(ImageSavePath, fmtImageFormat); 
    
                //liberer les ressources 
                imgInput.Dispose();
                bmpResized.Dispose();
                Buffer.Close();
            }
    
    
    
    

     

    Pour télécharger une image vous pouvez utiliser le contrôle FileUpload 

     

    Consultez aussi les exemples MSDN pour l’utilisation de FileUpload: http://msdn.microsoft.com/fr-fr/library/ms227669(VS.80).aspx

     

    La methode

    void ResizeFromStream(string ImageSavePath, int MaxSideSize, Stream Buffer)

     

    demande un paramètre de type Stream. Si vous avez un contrôle FileUpload1 sur votre page web et vous l’utilisez pour télécharger un fichier image, voici comment récupérer un Stream à partir de ce contrôle pour l’envoyer vers la méthode ResizeFromStream:

     

    FileUpload1.PostedFile.InputStream
    
    

     

    Donc l’appel de ResizeFromStream sera :

     

    ResizeFromStream(chemin, dimension, FileUpload1.PostedFile.InputStream)
    
    

     

    Avec chemin déclaré comme :

     

    string chemin = <chemin sur le serveur pour enregistrer le fichier>
    
    

     

    et dimension :

     

    int dimension = <dimension maximale d’une cote de l’image>
    
    

     

     

    Thread connexe :

    http://social.msdn.microsoft.com/Forums/fr-FR/aspnetfr/thread/b9248e62-6698-4b5a-9ae4-46e4e92458cd

     

     

    Pour plusieurs informations, visitez la page Foire aux Questions – ASP.NET

     


    Alex Petrescu - MSFT
    mardi 23 mars 2010 14:28
    Modérateur