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

Symfony PHP Discussion :

Upload et recadrage d'une photo de profil


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Upload et recadrage d'une photo de profil
    Bonjour, pour un de mes projets, j'aimerai que l'utilisateur puisse uploader une image pour son avatar, mais j'aimerai surtout que l'image une fois coté serveur soit de taille unique (un carré d'environ 100px de coté).

    J'aimerai donc créer un système dans le même genre que celui de Gravatar ou l'on peut croper son image dynamiquement.
    La procédure est la suivante :
    - upload de l'image
    - crop manuel de l'image
    - enregistrement de l'image définitive (sous forme de carré)

    Qu'elle serait selon vous la meilleure solution pour réaliser ce système, quelles sont les bonnes pratiques, les bonnes méthodes.
    L'utilisation de JCrop pourrait être intéressante mais je ne vois pas du tout où et comment l'integrer...

    Merci pour vos réponses.
    Cyril

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Jamais fais.

    Mais je sais : qu'il existe un système pour charger des fichiers qui retourne un objet file qui peut être manipulé avant d'être inscrit définitivement sur le disque.

    Et, dans mes souvenir, mais je n'ai pas trouvé, mais je n'ai pas beaucoup cherché, il y a un exemple dans le genre de ce que tu cherches sur le site de symfony.

    Bonne chance.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Il y a le plugin parfait pour ce que tu veux faire http://www.symfony-project.org/plugi...humbnailPlugin

    Exemple de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $thumbnail = new sfThumbnail(50, 50);
    $thumbnail->loadFile($object->getChemin());
    $thumbnail->save($object->getCheminMini());
    • On définit les dimensions que l'on souhaite.
    • On charge l'image qui sera modifiée. (load)
      • Dans mon cas, je prends l'image sauvegardée dans sa dimension totale.

    • On enregistre l'image dans le dossier. (save)
      • Dans mon cas c'est un dossier différent, mais tu peux choisir le même et la photo sera écrasée par la nouvelle.


    Dans mon projet je sauvegarde une image dans deux formats différents, grande et petite.
    Dans le fichier formulaire ***Form.class.php, je surcharge la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public function updateObject($values = null)
        {
            $object = parent::updateObject($values);
     
            if($photos = $object->getPhotos()){
                // Create the thumbnail
                $thumbnail = new sfThumbnail(50, 50);
                $thumbnail->loadFile($object->getChemin());
                $thumbnail->save($object->getCheminMini(), 'image/png');
     
            return $object;
            }
     
        }
    $object me permet d'accéder aux méthodes de mon modèle.

    Après tu as ce tutoriel qui pourra t'aider à mieux comprendre le reste, comme gérer la sauvegarde à partir du modèle et non du formulaire, et la suppression de l'image si tu décides de supprimer l'utilisateur.

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Et j'ai loupé une information sur ton message, la sélection d'une zone dynamique de la photo, je crois qu'il y a des systèmes existants pour ça...je vais essayer de les retrouver !

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Moi, je garde tel quel sous le coude, cela va me servir...

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses, après essai du plugin sfThumbnailPlugin, j'observe tout de même que même si l'image est recadrée et prend la bonne taille, le fait de la bloquer sous la forme d'un carré la déforme, d'où mon intérêt pour le crop.

  8. #8
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    J'ai développé une petite classe outil qui permet de faire différents types de découpe sur une image : http://www.developpez.net/forums/d14...e/#post4566977

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Points : 29
    Points
    29
    Par défaut
    Très interessant tout ça.

    Merci beaucoup, je vais garder ça aussi sous le coude

Discussions similaires

  1. [MySQL] upload d'une photo partie d'un chemin
    Par info_sara dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/06/2008, 12h09
  2. [Upload] Upload d'une photos
    Par defacta dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2007, 15h03
  3. [Upload] Uploadé une photo?
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 16h33
  4. Réponses: 2
    Dernier message: 27/02/2006, 11h18
  5. Comment ajouter une photo à mon profil ?
    Par ghita269 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/11/2005, 21h36

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