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

Bibliothèques et frameworks PHP Discussion :

[GD] Créer simultanément des vignettes sur upload d'images


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut [GD] Créer simultanément des vignettes sur upload d'images
    Bonjour,
    Je cherche un moyen de créer la vignette d'une photo au moment où je l'upload.

    Processus :
    J'ai un formulaire, je sélectionne mes photos, je valide le formulaire.
    Le nom de mes photos (automatique) est enregistré dans une table GALERIES, mes photos sont enregistrées sur le seveur web (move_upload_file). C'est donc à ce moment précis que je voudrais créer et uploader la vignette de la photo, mais dans un autre répertoire (pour n'avoir à générer qu'un nom de photo).

    galerie/images/monimage.jpg (ou png, ou gif)
    et
    galerie/images/mini/monimage.jpg

    J'ai trouvé des scripts qui redimmensionnent l'image, mais dupliquer, redimmensionner, uploader tout ça en même temps, j'éprouve quelques difficultés.

    Si quelqu'un pouvait m'aider ce serait sympa, il me reste 3 cheveux.

    Merci,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Ne t'inquiète pas c'est assez facile, tu as juste a uploader ton image dans son format natif puis apres demander a la librairie GD de te créer une nouvelle image a partir de celle que tu viens d'uploader. Tu vois il n'y a que 2 étapes:
    - Uploader l'image
    - Créer une nouvelle image plus petit, c'est tout.

  3. #3
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bonsoir,

    Alors alors... il faut y aller pas à pas

    Tu as mis des checkboxes à côté de tes photos ? Si oui je suppose que ton formulaire te renvoie un tableau avec les photos sélectionnées ?

    On va partir de cette hypothèse.

    Il faut donc faire une boucle sur ce tableau, et ensuite faire les étapes suivantes les unes à la suite des autres :

    - Mettre le nom de la photo en base
    - Uploader la photo sur le serveur

    A priori tu as déjà fait ces 2 étapes, reste la dernière : la vignette

    - Tu as dans la librairie GD la fonction imagecopyresampled — Copie, redimensionne, rééchantillonne une image (http://fr2.php.net/manual/fr/functio...yresampled.php)

    Ok ?
    Désolée pour tes cheveux o_O'

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    OK, j'essaye avec imagecopyresampled()...

    Comme c'est apparemment tout simple, je fais simple.

    Je me permets de mettre mon code :

    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
    26
    27
    28
     
    //J'ai enregistré le nom de ma photo en base et j'upload la photo sur le serveur
     
    $insertPhoto = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $uploaddir.$name);
     
    // la j'essaye de créer la vignette
     
    $dest = $_SERVER['DOCUMENT_ROOT']."images/galeries/mini/".$name;
    $source = $_SERVER['DOCUMENT_ROOT']."images/galeries/".$name;
     
    $size = getimagesize($source);
    $src_w = $size[0];
    $src_h = $size[1];
     
    $dst_h = 50;
    $dst_w = round($src_w/($src_h/50));
     
    imagecopyresampled ($dest, $source, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
    }
     
    if ($resupdateTable) {
     
    header ('location:galerie_detail.php?ID='.$IDS.'');
    } else {
    header ('location:crash.php');
    }
    mysql_close();
    ?>
    Alors :

    1. j'ai un imagecopyresampled(): supplied argument is not a valid Image resource (... mon $dest et mon $source ???, dans le manuel php $dest doit être "Lien vers la ressource de l'image de destination"... je ne comprends pas ce concept de ressource de l'image de destination ??? idem pour $source...)

    et 2. un Cannot modify header information

    Il est vrai que j'ai peut être un peut trop simplifié la chose mais bon...

    Qu'est-ce qui cloche ? moi ?

    Merci

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    OK, ok,

    après 2 heures d'exploration dans les différents codes trouvés sur le forum, j'ai réussi !!!!

    les resources dest :
    imagecreatetruecolor ...

    les resources sources :
    imagecreatefromjpeg ...

    et pas les chemins !

    bref j'ai bidouillé et dû encore générer 400 Mo de logs d'erreurs !
    Le travail c'est la santé, mes cheveux repoussent !

    Merci pour les tuyaux

  6. #6
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    Sinon pour éviter de te pendre, tu peux réutiliser une classe existante

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

Discussions similaires

  1. projection des quadriques sur les plan images
    Par studentTun dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 03/05/2013, 01h57
  2. Ajouter des objets sur une Map (image)
    Par Eausport dans le forum Collection et Stream
    Réponses: 27
    Dernier message: 04/08/2012, 12h00
  3. CKFinder erreur 2038 sur Upload d'images
    Par KoalaVS dans le forum ASP.NET
    Réponses: 0
    Dernier message: 24/02/2012, 09h53
  4. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06
  5. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47

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