IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Redimensionner des photos


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut Redimensionner des photos
    Bonjour,

    Quelqu'un aurait il déjà développer une fonction en c# qui permettrait de redimensionner des photos en conservant les proportions avant de les injecter en bdd.

    Les phots seraient dans un répertoire local au client.

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Image original = Image.FromFile(fichierSource);
        Image newImage = new Bitmap(original, nouvelleLargeur, nouvelleHauteur);
        newImage.Save(fichierDestination);

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Bonjour,

    Et quelque soit le format de l'image ? JPG ou autre ?

    E Leducq

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Peu importe le format, ça change rien. Le format utilisé pour l'enregistrement est déduit par rapport à l'extension, mais tu peux aussi le préciser en paramètre de Save

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    merci pour l'aide.
    je vais regarder cela .

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tiens tiens !

    Tomlev m'a de nouveau appris qq chose !
    Je ne connaissais pas ce constructeur de Bitmap
    D'habitude pour faire ca j'utilise un Graphics.DrrawImage qui permet de définir le mode d'interpolation et l'aliasing

    Mais je me demande comment fait le constructeur de BitMap ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par olibara Voir le message
    Mais je me demande comment fait le constructeur de BitMap ?
    Tu peux toujours faire un petit coup de Reflector dessus
    Par contre je pense que ça fait appel à des API GDI+, donc tu verras pas toute l'implémentation...

  8. #8
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    bonjour,

    j'ai encore une question .... comment transformer mon fichier fichier de Destination en tableau de byte[].

    C'est pour l'importer en bdd dans un blob

    Merci de votre aide

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    C'est pour l'importer en bdd dans un blob
    Pour ma part je n'ai jamais aimé cette maniere qui pose a mon avis plus de désagrément que d'avantages

    Je prefere stocker les images sur un repertoire partagé et la reference a ces images dans la DB.
    Le path du repertoire pouvant etre défini dans un settings qq part

  10. #10
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    oui moi aussi mais malheureusement j'ai pas le choix.

  11. #11
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    j'ai trouvé une idée sur le net et je l'ai adapté ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    byte[] byteData = new byte[0];
                        MemoryStream ms = new MemoryStream();
                        Image photoDimensionne = Image.FromFile(fichierDestination);
                        photoDimensionne.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                        byteData = ms.ToArray();
    qu'en pensez vous ?

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par beegood Voir le message
    qu'en pensez vous ?
    Ben si tu as déjà l'image de destination enregistrée dans un fichier, il suffit d'utiliser File.ReadAllBytes

    Sinon, si tu as pas besoin du tout de passer par un fichier, tu peux aussi enregistrer l'image directement dans un MemoryStream

  13. #13
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    j'ai le fichier fichier ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       byte[] byteData = new byte[0];
       byteData = File.ReadAllBytes(fichierDestination);

    avec fichierDestination repertoire\ .... \image.jpg


    c'est ca ?

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par beegood Voir le message
    c'est ca ?
    Oui, sauf que ça sert à rien d'initialiser byteData avec un tableau vide, vu que tu lui affectes une autre valeur aussitôt après...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       byte[] byteData = File.ReadAllBytes(fichierDestination);

  15. #15
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    merci à tous pour l'aide....

  16. #16
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Autre méthode , avec une meilleur qualité d'image résultante ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    /// <summary> 
            /// Resize the image to the specified width and height. 
            /// </summary> 
            /// <param name="image">The image to resize.</param> 
            /// <param name="width">The width to resize to.</param> 
            /// <param name="height">The height to resize to.</param> 
            /// <returns>The resized image.</returns> 
            public static System.Drawing.Bitmap ResizeImage(System.Drawing.Image image, int width, int height)
            {
                //a holder for the result 
                Bitmap result = new Bitmap(width, height);
                //use a graphics object to draw the resized image into the bitmap 
                using (Graphics graphics = Graphics.FromImage(result))
                {
                    //set the resize quality modes to high quality 
                    graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                    graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    //draw the image into the target bitmap 
                    graphics.DrawImage(image, 0, 0, result.Width, result.Height);
                }
                //return the resulting bitmap 
                return result;
            }

  17. #17
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Et du coup tu a répondu a la question qui m'était venue avec kla méthode proposée par TomLev


    Citation Envoyé par olibara
    D'habitude pour faire ca j'utilise un Graphics.DrrawImage qui permet de définir le mode d'interpolation et l'aliasing

    Mais je me demande comment fait le constructeur de BitMap ?

  18. #18
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Même si je n'applique pas au finale la méthode proposée , je vous remercie bien car cela m'a permis d'avoir un point de départ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redimensionner des photos automatiquement
    Par lordlifen dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/09/2010, 16h53
  2. [Traitement d'image] publier des photos simplement
    Par koelette dans le forum Webdesign & Ergonomie
    Réponses: 6
    Dernier message: 22/08/2005, 16h21
  3. Redimensionnement des composants
    Par hush dans le forum Agents de placement/Fenêtres
    Réponses: 20
    Dernier message: 21/08/2005, 11h07
  4. pb affichage des photos incorporées par balises html
    Par laville dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/04/2005, 11h47
  5. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo