Insertion Copyright dans sur une image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insertion Copyright dans sur une image

par Moi » 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">

par Invité » 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 !!

par DocType » 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:

par Invité » 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);

par Invité » 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);

par fab » 26 nov. 2006, 22:05

Qu'entends tu par ça ne marche pas?
li faut nous donenr des précisions...

par Invité » 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

par fab » 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

par Alex85 » 26 nov. 2006, 20:57

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

par Spols » 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

par Alex85 » 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

par winni » 26 nov. 2006, 20:32

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

Insertion Copyright dans sur une image

par Alex85 » 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