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 :

[ImageMagick] Insérer du texte sur image uploadée


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut [ImageMagick] Insérer du texte sur image uploadée
    Bonjour,

    J'ai un script d'envoi d'images qui permet a mes membre de poster leur photos, ce script marche bien

    cependant je voudrais leur permetre de mettre un petit copyright ou un petite texte de leur choix sur les images en bas a droite...

    Donc en gros il on un champs dans le formulaire a 50 carateres et je voudrai que le texte de ce champs s'insere a droite en bas de l'image uploader. je ne trouve guere d'information sur cette méthode, pourriez vous m'aider ?

    on ma aiguiller vers http://fr.php.net/manual/fr/function.imagettftext.php mais je comprend pas trops ...

    voici un bout de code de l'upload de mes images

    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
    if($file_size){
    if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
    $new_img2 = imagecreatefromjpeg($file_tmp);
    }elseif($file_type == "image/x-png" || $file_type == "image/png"){
    $new_img2 = imagecreatefrompng($file_tmp);
    }elseif($file_type == "image/gif"){
    $new_img2 = imagecreatefromgif($file_tmp);
    }
     
    list($width, $height) = getimagesize($file_tmp);
    $imgratio2=$width/$height;
    if ($imgratio2>1){
    $newwidth2 = $ThumbWidth2;
    $newheight2 = $ThumbWidth2/$imgratio2;
    }else{
    $newheight2 = $ThumbWidth2;
    $newwidth2 = $ThumbWidth2*$imgratio2;
    }
     
    $resized_img2 = imagecreatetruecolor($newwidth2,$newheight2);
     
    imagecopyresized($resized_img2, $new_img2, 0, 0, 0, 0, $newwidth2,
     
    $newheight2, $width, $height);
     
    Imagejpeg ($resized_img2,"$path_big/$rand_name.$file_ext");
    ImageDestroy ($resized_img2);
    ImageDestroy ($new_img2);

    merci par avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    j'ai essayer un code qui est censé faire un peu comme imagehask et mettre une bande noir en dessous de limage mais sa ne marche pas voyez vous l'erreur ?


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    //get the new width variable.///////////////////////
    $ThumbWidth = $img_thumb_width;
     
    //keep image type///////////////////////////////
    if($file_size){
    if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
    $new_img = imagecreatefromjpeg($file_tmp);
    }elseif($file_type == "image/x-png" || $file_type == "image/png"){
    $new_img = imagecreatefrompng($file_tmp);
    }elseif($file_type == "image/gif"){
    $new_img = imagecreatefromgif($file_tmp);
    }
     
    //list width and height and keep height ratio.//////////////////////
    list($width, $height) = getimagesize($file_tmp);
    $imgratio=$width/$height;
    if ($imgratio>1){
    $newwidth = $ThumbWidth;
    $newheight = $ThumbWidth/$imgratio;
    }else{
    $newheight = $ThumbWidth;
    $newwidth = $ThumbWidth*$imgratio;
    }
     
     
    $resized_img = imagecreatetruecolor($newwidth,$newheight);
     
    /***************************************************/
    /* création de la légende : texte en blanc         */
    /***************************************************/
    $blanc = imagecolorallocate($resized_img,255,255,255); //couleur blanche
    $string = "test test test test";
     
    $write_h = $height - imagefontheight(3) - 1; //hauteur
     
    /* centrage -> on récupère $n_largeur la largeur   */
    /* de la vignette, on lui retire la largeur de la  */
    /* police multipliée par le nombre de caractères   */
    /* puis on divise le résultat par 2 pour centrer   */
     
    $write_w = ($width - strlen($string) * imagefontwidth(3))/2;
    imagestring($resized_img, 3, $write_w, $write_h, $string, $blanc); //on écrit la légende
     
    /***************************************************/
    /* ouverture du fichier                            */
    /***************************************************/
    $source = imagecreatefromjpeg($file_tmp);
     
    /***************************************************/
    /* réduction, rééchantillonage et copie de l'image */
    /* originale                                       */
    /* on recopie l'image à partir du point de         */
    /* coordonnées 1,1 pour laisser un cadre noir      */
    /***************************************************/
     
    imagecopyresampled($resized_img,$source, 1,1, 0,0, $newwidth, $newheight, $width, $height);
     
     
    //save image
    Imagepng ($resized_img,"$path_thumbs/$rand_name-mini.png");
    ImageDestroy ($resized_img);
    ImageDestroy ($new_img);

  3. #3
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Salut,

    personne à l'air décidé, alors je me lance.

    Pour travailler sur des images, la librairie gd est la plus courante.

    Pour ma part je ne vois qu'une solution à ton problème.

    A l'upload tu stock ton image dans un fichier temporaire, et tu fait passer le texte du membre par "post". Ensuite tu réccupère les dimensions de ton image, tu creer un rectangle noir sur 10 pixel de hauteur sur (hauteur - 10) (le repère commence en haut à gauche), puis tu insere ton texte dans ce rectangle, et tu enregistre la nouvelle image créée dans un repertoire definintif.

    Pour faire tout ça renseigne toi sur la librairie gd.

    Si tu trouve pas, je te fillerai un coup de main.

    Mais comme on dit, "C'est en forgeant que l'on devient forgeron.".

    Bon courage
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Deja merci de ta réponse !

    ALors en faite j'ai deja le script (trouver sur le net) qui upload mes images et il marche tres bien

    Je stock toute les données dans un image temporaire et je voudrais bien passer la variable du texte par la methode POST, j'ai deja pas mal essayer mais j'obtiens des image noir avec des cadre et le texte mais ca ne vas pas du tous .... je me perds dans les variable.

    Voici le script de ma galerie.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    $path_big = "images/album";
    $path_thumbs = "$path_big/mini";
     
    $img_thumb_width = 160; // in pixel
     
    $img_thumb_width2 = 700; // in pixel
     
    $extlimit = "yes"; 
    $limitedext = array(".gif",".jpg",".png",".jpeg");
     
     
     
    if (!is_writeable($path_thumbs)){
    die ("Erreur: Le dossier <b>($path_thumbs)</b> n'est pas accessible");
    }
    if (!is_writeable($path_big)){
    die ("Erreur: Le dossier <b>($path_big)</b> n'est pas accessible");
    }
     
    //if the for has submittedd////////////////////////////////
    if (isset($_POST['submit'])){
     
     
    foreach ($_FILES['imgfile']['tmp_name'] as $key => $value) {
     
    $file_tmp=$value;//nom reel de l'image 
     
    $file_type = $_FILES['imgfile']['type'][$key];
    $file_name = $_FILES['imgfile']['name'][$key];
    $file_size = $_FILES['imgfile']['size'][$key];
     
    $desimg = $_POST['desimg'];
     
    //check file extension//////////////////////
    $ext = strrchr($file_name,'.');
    $ext = strtolower($ext);
    if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
    //echo "L'extension du fichier sélectionné n'est pas correcte. <br /><a href=\"#\">retour</a>";
    exit();
    }
     
    //get the file extension./////////////////////
    $getExt = explode ('.', $file_name);
    $file_ext = $getExt[count($getExt)-1];
     
    $sql  = mysql_query(" INSERT INTO**************") or die( mysql_error());
     
    //Recuperation du dernier id et renomage/////////////////
    $rand_name = mysql_insert_id(); 
     
    //get the new width variable.///////////////////////
    $ThumbWidth = $img_thumb_width;
     
    //keep image type///////////////////////////////
    if($file_size){
    if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
    $new_img = imagecreatefromjpeg($file_tmp);
    }elseif($file_type == "image/x-png" || $file_type == "image/png"){
    $new_img = imagecreatefrompng($file_tmp);
    }elseif($file_type == "image/gif"){
    $new_img = imagecreatefromgif($file_tmp);
    }
     
    //list width and height and keep height ratio.//////////////////////
    list($width, $height) = getimagesize($file_tmp);
    $imgratio=$width/$height;
    if ($imgratio>1){
    $newwidth = $ThumbWidth;
    $newheight = $ThumbWidth/$imgratio;
    }else{
    $newheight = $ThumbWidth;
    $newwidth = $ThumbWidth*$imgratio;
    }
     
    $resized_img = imagecreatetruecolor($newwidth,$newheight);
     
    imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    //save image
    Imagepng ($resized_img,"$path_thumbs/$rand_name-mini.png");
    ImageDestroy ($resized_img);
    ImageDestroy ($new_img);
     
     
    if ($width>700 OR $height>700 ){ 
     
    // CONDITON DES 500 PIXELS
     
    //get the new width variable./////////////////////// GROSSSE IMAGE/////////////
    $ThumbWidth2 = $img_thumb_width2;
     
    //keep image type///////////////////////////////
    if($file_size){
    if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
    $new_img2 = imagecreatefromjpeg($file_tmp);
    }elseif($file_type == "image/x-png" || $file_type == "image/png"){
    $new_img2 = imagecreatefrompng($file_tmp);
    }elseif($file_type == "image/gif"){
    $new_img2 = imagecreatefromgif($file_tmp);
    }
     
    //list width and height and keep height ratio.//////////////////////
    list($width, $height) = getimagesize($file_tmp);
    $imgratio2=$width/$height;
    if ($imgratio2>1){
    $newwidth2 = $ThumbWidth2;
    $newheight2 = $ThumbWidth2/$imgratio2;
    }else{
    $newheight2 = $ThumbWidth2;
    $newwidth2 = $ThumbWidth2*$imgratio2;
    }
     
    $resized_img2 = imagecreatetruecolor($newwidth2,$newheight2);
     
    imagecopyresized($resized_img2, $new_img2, 0, 0, 0, 0, $newwidth2, $newheight2, $width, $height);
    //save image
     
    Imagejpeg ($resized_img2,"$path_big/$rand_name.$file_ext");
    ImageDestroy ($resized_img2);
    ImageDestroy ($new_img2);
    }}}
    if ($width<700 OR $height<700 ){ 
    //envoyer la grosse image SANS LA REDIMMENSIONNER /////////////////////
     
    move_uploaded_file ($file_tmp, "$path_big/$aaa/$rand_name.$file_ext");
    }}}}

  5. #5
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bon, je n'ai pas bien le temps de regarder ce code, mais voilà un exemple de traitement de ton image:

    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
    <?php
     
    //On réccupère les informations de l'image:
     
    $infos = GetImageSize ($fichier);
     
    //On stock les infos
    $width = $infos[0];
    $high = $infos[1];
    $type = $infos[2];
     
    //On crée notre nouvelle image:
    $im = ImageCreate ($width, $high + 10); //On ajoute 10 pixels en bas pour ajouter les commentaires
        or die ("Erreur lors de la création de l'image");        
    $couleur_fond = ImageColorAllocate ($im, 0, 0, 0); //On stock la couleur noire pour le fond
    ImagePng ($im);  //Faire un if en fonction du type réccupéré pour mettre les bonne fonctions. Pour l'exemple on prendra le png
     
    //On copie l'image uploadé dans notre nouvelle
    ImageCopy ($im, $image_uploadee, 0, 0, 0, 0, $width, $high) //PHP.NET pour les explications
     
    //On insert la phrase de l'user
    $blanc = ImageColorAllocate ($im, 255, 255, 255); 
    ImageString($im, 2, $high+4, $hauteurDestination-18, $_POST['commentaire'], $blanc);
     
    //Et on crée l'image
    ImagePng ($im); 
     
    ?>
    Bien sur ce code n'est pas complet, il faut rajouter les condition en fonction du type de ton image.

    Mais je pense que c'est une bonne base.

    Esites pas si tu as des questions.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Merci encore de tas reponse mais je ne comprend pas

    $infos = GetImageSize ($fichier); c'est mon image uploader ? ou une nouvelle image crée ?


    //Et on crée l'image mais comment on fusionne les deux images ?
    ImagePng ($im);

    Merci de ta réponse.

  7. #7
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bon alors:

    $infos = GetImageSize ($fichier); c'est pour réccuperer les info de l'image que tu as uploadée, avec ton script donc. Ces infos sont stocké dans les variable infos[X], que je renomme pour plus de facilitée.

    Et ImagePng ($im); c'est l'image finale qui est crée, celle que tu dois enregistrer.

    Celle que tu as uploadée, tu peux la supprimer si tout c'est bien passé.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Bon j'ai essayer d'appater en mettant les bonne varialble mais sa ne marche pas

    j'ai une image noire :s

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    //list width and height and keep height ratio.//////////////////////
    list($width, $height) = getimagesize($file_tmp);
    $imgratio2=$width/$height;
    if ($imgratio2>1){
    $newwidth2 = $ThumbWidth2;
    $newheight2 = $ThumbWidth2/$imgratio2;
    }else{
    $newheight2 = $ThumbWidth2;
    $newwidth2 = $ThumbWidth2*$imgratio2;
    }
     
     
    //On réccupère les informations de l'image:
     
    $infos = GetImageSize ($file_tmp);
     
    //On stock les infos
    $width = $infos[0];
    $high = $infos[1];
    $type = $infos[2];
     
    //On crée notre nouvelle image:
    $im = ImageCreate ($width, $high + 10); //On ajoute 10 pixels en bas pour ajouter les commentaires
     
    $couleur_fond = ImageColorAllocate ($im, 0, 0, 0); //On stock la couleur noire pour le fond
     
    Imagejpeg ($im);  
     
    //On copie l'image uploadé dans notre nouvelle
    ImageCopy ($im, $file_tmp, 0, 0, 0, 0, $width, $high); //PHP.NET pour les explications
     
    //On insert la phrase de l'user
    $blanc = ImageColorAllocate ($im, 255, 255, 255); 
    ImageString($im, 2, $high+4, $width-18, $_POST['copyr'], $blanc);
     
    //Et on crée l'image
    Imagejpeg ($im,"$path_big/$rand_name.$file_ext");
     
     
     
    $resized_img2 = imagecreatetruecolor($newwidth2,$newheight2);
     
    imagecopyresized($resized_img2, $new_img2, 0, 0, 0, 0, $newwidth2, $newheight2, $width, $height);
    //save image
     
    ImageDestroy ($resized_img2);
    ImageDestroy ($new_img2);
     
     
    }}}
     
     
    if ($width<700 OR $height<700 ){ 
    //envoyer la grosse image SANS LA REDIMMENSIONNER /////////////////////
     
    move_uploaded_file ($file_tmp, "$path_big/$aaa/$rand_name.$file_ext");
     
     
    }}}}

  9. #9
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bon alors quelques truc à mettre au point,

    déjà tu as modifié mes valeur de positionnement de lécriture, mé après tu fait ce que tu veux lol.

    Mais tu n'a pas fait les if, tu as juste remplacé par jpeg, est-ce bien une image de ce format que tu upload ?

    De plus, pourrait tu m:e mettre les erreurs de ton fichiers log que je puisse comprendre d'où vient l'erreur.

    Les log son dans le fichier d'appache, log, error.log
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Je n'est pas modifié l'emplacement du texte lol (je pense pas ou alors c'est par erreur)

    Pour l'instant j'upload une image .JPG pour tester pour les differentes version d'image sa sera pour la fin

    Je n'est pas de fichier Log ! et je ne sais pas trops comment l'avoir

    je pense pâs que sa soi une grosse erreur le fait que sa soit l'imlage noir mais je n'arrive pas a voir pourquoi elle est nois, a mon avi je confond qlq variable !

  11. #11
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bin en fait, comme je te l'ai dit, je fait une image noire de la taille de l'image uploadé, et plus haute de 10px, pour pouvoir mettre du texte blanc.

    Après je copie l'image uploadé dans ma nouvelle image, en la mettant tout en haut et je rajoute le texte.

    Donc si ton image est noire, l'erreur est surement du au moment ou tu copies l'image.

    Pour le log, ça dépend ton installation, t'as quoi easyphp, wamp, ou un serveur apache classique.

    Regarde dans tes fichiers d'install, on fait une recherche.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Re bonsoir,

    Voici le code que j'ai mi ... l'image est toujours noir ! sa commence a me gonfler !!! je vois pas d'ou ca vien

    Pour le log je sais pas je suis chez 1and1.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    //On réccupère les informations de l'image:
     
    $infos = GetImageSize ($file_tmp);
     
    //On stock les infos
    $width = $newwidth2;
    $high = $newheight2;
    $type = $new_img2;
     
    //On crée notre nouvelle image:
    $im = ImageCreate ($width, $high + 10); //On ajoute 10 pixels en bas pour ajouter les commentaires
     
    $couleur_fond = ImageColorAllocate ($im, 0, 0, 0); //On stock la couleur noire pour le fond
     
    Imagejpeg ($im);  
     
    //On copie l'image uploadé dans notre nouvelle
    ImageCopy ($im, $file_tmp, 0, 0, 0, 0, $width, $high); 
     
    //On insert la phrase de l'user
    $blanc = ImageColorAllocate ($im, 255, 255, 255); 
    $texte = "coucou"; 
     
    ImageString($im, 2, $high+4, $width-18, $texte, $blanc);
     
    //Et on crée l'image
    Imagejpeg ($im,"$path_big/$rand_name.$file_ext");
     
     
    //save image
     
    Imagejpeg ($im,"$path_big/$rand_name.$file_ext");
    ImageDestroy ($im);
     
     
     
    }}}

  13. #13
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Salut,

    bon alors déjà, soit tu laisse le script que je té mi pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $width = $infos[0];
    $high = $infos[1];
    $type = $infos[2];
    Soit tu vire le GetImageSize qui ne sert plus à rien si tu met directement les valeur.

    Ensuite, je t'ai dit une betise, vire le

    ... après le stockage de la couleur noir.

    Et je pense que ça devrait aller.

    Mais une chose encore, en ce qui concerne le texte affiché, il faut que dans le formulaire d'upload tu rajoute un champs 'commentaire' ou ce que tu veux, pour que l'on puisse réccupèrer la valeur $_POST['commentaire'].

    Enfin, à la fin de ton code,

    vire moi ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imagejpeg ($im,"$path_big/$rand_name.$file_ext");
    ImageDestroy ($im);
    et remplace par ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageDestroy ($file_tmp);
    Et ne t'enerves pas, ça ne sert à rien. Je n'ai pas testé ce code, j'ai pondu ça en 5 minutes, je pensais pas que tu allais le reprendre tel quel.

    En ce qui concerne le log, je te parlais de tes fichiers en local, quand tu test.

    Mais c'est pas grave on fera sans.

    Tiens moi au courant.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Salut !

    je ne m'enerve pas enfin juste contre moi ! car je voudrais bien que cela marche

    Sinon j'ai fait les modification que tu ma indiqué mais j'ai toujours une image noir :s !

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Miracle j'ai reussi

    sa marche nikel

    Merci !

  16. #16
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bien, il serait utile pour les autre de poster le code fonctionnel.

    Heureux d'avoir pu t'aider.

    @+
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Voila le code


    en faite jai repris un tuto et avec les explications de ce topic j'ai compilé un truc lol


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $hauteur = $height3 + 12;
    $resized_img3 = imagecreatetruecolor($width3,$hauteur);
    $blanc = imagecolorallocate($resized_img3,255,255,255);
    $cop = $_POST['copyr']; 
     
    $string = "le texte";
    $write_h = $hauteur - imagefontheight(3) - 1; 
    $write_w = ($width3 - strlen($string) * imagefontwidth(3))/2;
    imagestring($resized_img3, 2, $write_w, $write_h, $string, $blanc); //on écrit la légende
     
    imagecopyresized($resized_img3,$new_img3, 0, 0, 0, 0, $width3, $height3, $width, $height);
    imagejpeg ($resized_img3,"$path_big/$rand_name.$file_ext");
    ImageDestroy ($resized_img3);

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

Discussions similaires

  1. GDI+ : insérer un texte sur une image
    Par Axiome dans le forum DirectX
    Réponses: 0
    Dernier message: 10/12/2008, 21h11
  2. [ImageMagick] Générer un texte sur une image
    Par kevinf dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/11/2007, 14h21
  3. Texte sur image
    Par medchennani dans le forum Delphi
    Réponses: 5
    Dernier message: 05/03/2007, 13h06
  4. fonctions d'image : texte sur image
    Par guy2004 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 09h56
  5. [Upload] droit lecture sur image uploadée
    Par Mitaka dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2006, 11h52

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