Insertion Copyright dans sur une image

Alex85
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 20:17

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

Eléphant du PHP | 78 Messages

26 nov. 2006, 20:32

Utilise la librairie GD :-) disponible avec PHP il faut juste l'activer.

Alex85
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 20:33

Elle est deja activée ...

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

Mammouth du PHP | 1967 Messages

26 nov. 2006, 20:46

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
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Alex85
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 20:57

hummm Pourriez vous me donner des adresses car je ne sais meme pas quoi rechercher ....

ViPHP
fab
ViPHP | 2657 Messages

26 nov. 2006, 21:07

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
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 21:49

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

ViPHP
fab
ViPHP | 2657 Messages

26 nov. 2006, 22:05

Qu'entends tu par ça ne marche pas?
li faut nous donenr des précisions...
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

26 nov. 2006, 22:10

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

Invité
Invité n'ayant pas de compte PHPfrance

27 nov. 2006, 01:05

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

Mammouth du PHP | 1776 Messages

27 nov. 2006, 01:26

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:

Invité
Invité n'ayant pas de compte PHPfrance

30 nov. 2006, 00:53

- 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 !!

Moi
Invité n'ayant pas de compte PHPfrance

30 nov. 2006, 19:08

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">