Page 1 sur 1

Insertion Copyright dans sur une image

Posté : 26 nov. 2006, 20:17
par Alex85
Bonjour,

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

cependant je voudrais leur permetre de mettre un petit copyright de leur choix sur les images

Donc en gros il on un champs limiter 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 ?

merci par avance

Posté : 26 nov. 2006, 20:32
par winni
Utilise la librairie GD :-) disponible avec PHP il faut juste l'activer.

Posté : 26 nov. 2006, 20:33
par Alex85
Elle est deja activée ...

Ma question été comment peu t'on inseré du texte lors de l'upload ... sur les photos

Posté : 26 nov. 2006, 20:46
par Spols
ce n'est pas lors de l'upload mais aprés l'avoir enregistré sur le serveur, il existe toutes une serie de fonction GD, a voir dans la documentation ==> google

en gros tu ouvre une image vide, tu plaque dessus ton image , tu plaque le texte dessus et tu la suave sous le même nom

Posté : 26 nov. 2006, 20:57
par Alex85
hummm Pourriez vous me donner des adresses car je ne sais meme pas quoi rechercher ....

Posté : 26 nov. 2006, 21:07
par fab
Non tu ne veux pas rechercher, on t'a dit les fonctions de la librairie GD de php...
http://fr.php.net/gd
pas compliqué quand même, on veut bien aider mais bon faut y mettre du sien aussi un peu

Posté : 26 nov. 2006, 21:49
par Invité
Bon j'ai essayer

j'ai mi ceci
$resized_img = imagecreatetruecolor($newwidth,$newheight);

$white = imagecolorallocate($resized_img, 255, 255, 255);
$grey = imagecolorallocate($resized_img, 128, 128, 128);
$black = imagecolorallocate($resized_img, 0, 0, 0);
imagefilledrectangle($resized_img, 0, 0, 399, 29, $white);
$text = 'Test...';
$font = 'arial.ttf';
imagettftext($resized_img, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($resized_img, 20, 0, 10, 20, $black, $font, $text);

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);
mais sa ne marche pas

si une personne me me donner un coup de main

Posté : 26 nov. 2006, 22:05
par fab
Qu'entends tu par ça ne marche pas?
li faut nous donenr des précisions...

Posté : 26 nov. 2006, 22:10
par Invité
Et bien l'image que l'upload sur le serveur n'as pas la petite images situé a droite en bas ...

je n'est pas de message d'erreur mais l'image n'est pas inserer sur l'image.

ca c'est le code me reprenant mes donnés de l'image a l'upload

Code : Tout sélectionner

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);

Posté : 27 nov. 2006, 01:05
par Invité
j'ai essayer un script qui donne a peu pret la meme presentation de imaghack (sa met une bande noir en bas de l'image (la grande)

mais sa ne fonctionne pas ... ya po la bande et pas de message d'erreur

//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);

Posté : 27 nov. 2006, 01:26
par DocType
STOPPPPPPPP !!!

On reprend en douceur...
//save image 
Imagepng ($resized_img,"$path_thumbs/$rand_name-mini.png"); 
penser à le passer en
//save image 
Imagepng ($resized_img,$path_thumbs."/".$rand_name."-mini.png"); 
Ensuite pour ton problème, je te conseille dans un premier temps de mettre un htaccess sur ton site avec la ligne

Code : Tout sélectionner

php_flag display_errors On
(Cela permettra d'afficher les erreurs de script). Une fois cela fait, éxécute ton script. Si tu as des erreurs, communique les nous. Sinon, Il faut revoir point par point le script:
- valider l'envoi de l'image uploadée (jusqu'à l'enregistrement sur le serveur)
- valider la nouvelle image constituant le texte (jusqu'à l'enregistrement sur le serveur)
- fusionner ces deux fonctions pour n'en faire qu'une seule.

Dans l'attente de news de ta part :wink:

Posté : 30 nov. 2006, 00:53
par Invité
- valider l'envoi de l'image uploadée (jusqu'à l'enregistrement sur le serveur)
Mon script marche sa enregsitré bien mes images

- valider la nouvelle image constituant le texte (jusqu'à l'enregistrement sur le serveur)
- fusionner ces deux fonctions pour n'en faire qu'une seule.

Alors sa bloque on ma proposer un bout de code

//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;
}

$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
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, $file_tmp, 0, 0, 0, 0, $width, $high);
 
//On insert la phrase de l'user
$blanc = ImageColorAllocate ($im, 255, 255, 255); 
$texte = "toto toto toto";
ImageString($im, 2, $high+4, $width-18, $texte, $blanc);
 
//Et on crée l'image
ImagePng ($im); 

 
//Et on crée l'image
Imagejpeg ($im,"$path_big/$rand_name.$file_ext");
 
mais j'obtiens encore une image noir ....

Si qlq veut bien me donner un coup de main !!

Posté : 30 nov. 2006, 19:08
par Moi
Nom du fichier:
create_image.php

<?php 

$nom_image = "";  // le nom de votre image avec l'extension jpeg
$texte = "http://www.phpsources.org/";  // Le texte que vous désirez écrire sur l'image

header ("Content-type: image/jpeg");
$image = imagecreatefromjpeg($nom_image);
$blanc = imagecolorallocate($image, 255, 255, 255);
imagestring($image, 5, 150, 150,$texte, $blanc);
imagejpeg($image);
?> 

<!-- 
C'est ici qu'on incorpore l'image. Donc ouvrez une page et placez la balise ci dessous
C'est donc la balise HTML classique IMG 
-->

<img src="create_image.php">