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] Problème de Watermarking


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut [ImageMagick] Problème de Watermarking
    Salut!

    J'essaie d'avoir un script qui upload et watermark la photo en meme temps.. mais ca ne marche pas... Il l'upload mais sans Watermark.

    Voici le 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    $dest_dossier = "Supprimé pour sécurité"; // Dossier ou vont les photos sur le SERVEUR (sta dire le chemin dacces)
    
    					$http_dest = "/photosmembres/"; 
    
    			    $dest_fichier = basename($photo['name']);
    
    			    // formatage nom fichier
    
    			    // enlever les accents
    
    			    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    
    			    // remplacer les caracteres autres que lettres, chiffres et point par _
    
    			    $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    
              // WATERMARKING
    										
    					$watermark = imagecreatefromjpeg('logo2.jpg');  
    					$watermark_width = imagesx($watermark);  
    					$watermark_height = imagesy($watermark);  
    					$image = imagecreatetruecolor($watermark_width, $watermark_height);  
    					$image = imagecreatefromjpeg($photo['tmp_name']);  
    					$size = getimagesize($photo['tmp_name']);  
    					$dest_x = $size[0] - $watermark_width - 5;  
    					$dest_y = $size[1] - $watermark_height - 5;  
    					$lol = imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);  
    					$watermarked = imagejpeg($lol);  
    					// copie du fichier
    			    
    			    move_uploaded_file($watermarked, $dest_dossier . $dest_fichier);
    
    			    $db = mysql_connect($host, $login, $password);  // 1 
    
    					mysql_select_db($base,$db);                    // 2 
    
    					$now = date("d/m/Y");     
    
    	        $query="INSERT INTO album_".$id."(date,lien,description) VALUES('".$now."','".$http_dest.$dest_fichier."','".$description."')";          // 3 
    
    					mysql_query($query) 
    
    					or die('Erreur pendant l\'envoi de données');
    					imagedestroy($image);  
    					imagedestroy($watermark);  
    		}

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Je pense qu'il te faut spécifier le second paramètre de la fonction imagejpeg() afin de créer le fichier physique plutôt qu'une simple ressource en mémoire.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut
    Merci, je vais vérifier cette voie.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut
    Meh, ca marche pas.

    J'ai changé les deux dernières lignes comme suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    imagejpeg($lol, "tempfile1");  
    // copie du fichier
     
    move_uploaded_file("tempfile1", $dest_dossier . $dest_fichier);

  5. #5
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut
    J'ai essayé un nouveau code, mais ca marche pas plus.

    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
     
    $filetype = substr($photo['tmp_name'],strlen($photo['tmp_name'])-4,4); 
    $filetype = strtolower($filetype); 
    if($filetype == ".gif")  $image = @imagecreatefromgif($photo);  
    if($filetype == ".jpg")  $image = @imagecreatefromjpeg($photo);  
    if($filetype == ".png")  $image = @imagecreatefrompng($photo);  
    if (!$image) die(); 
    $watermark = imagecreatefromgif('watermark.gif'); 
    $imagewidth = imagesx($image); 
    $imageheight = imagesy($image);  
    $watermarkwidth =  imagesx($watermark); 
    $watermarkheight =  imagesy($watermark); 
    $startwidth = (($imagewidth - $watermarkwidth)/2); 
    $startheight = (($imageheight - $watermarkheight)/2); 
    imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight); 
    imagejpeg($image, $dest_dossier.$dest_fichier); 
    imagedestroy($image); 
    imagedestroy($watermark);

  6. #6
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut
    Si ca peut vous aider, j'ai établi que l'arrêt se produit au die.. donc !image..

    Je comprend vraiment pas. Si ca peut vous aider : mise en contexte

    L'utilisateur upload une image dans un autre script, et ce script appele à la fonction uphoto pour ce faire.

    La fonction uphoto comprend tout le code pour amener l'image du point a au point b, et est supposé faire le Watermarking.

    Si ca peut vous aider... voici la fonction de a à z.

    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
    function uphoto($photo, $id, $description) {
    	// params
    	unset($erreur);
    	$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'PNG', 'GIF', 'JPG', 'JPEG');
    	$taille_max = 512000;
     
    	// vérifications
    	if(!in_array( substr(strrchr($photo['name'], '.'), 1), $extensions_ok ) )
    	{
    		$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
    	}
     
    	elseif( file_exists($photo['tmp_name'])
    	and filesize($photo['tmp_name']) > $taille_max)
    	{
    		$erreur = 'Votre fichier doit faire moins de 500Ko !';
    	}
    	// copie du fichier
    	if(!isset($erreur))
    	{
    		$host="localhost"; 	//Hôte
    		$login="sherbsr_adminz";			//Login
    		$password="1234mori";				//Pass
    		$base="sherbsr_album";
    		$dest_dossier = "/home/sherbsr/public_html/Photo Album/photos/"; // Dossier ou vont les photos sur le SERVEUR (sta dire le chemin dacces)
    		$http_dest = "/Photo Album/photos/";
    		$dest_fichier = basename($photo['name']);
     
    		// formatage nom fichier
     
    		// enlever les accents
    		$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    		// remplacer les caracteres autres que lettres, chiffres et point par _
    		$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
     
    		// WATERMARK
    		$filetyp = substr($photo['tmp_name'],strlen($photo['tmp_name'])-4,4);
    		$filetype = strtolower($filetyp);
    		if($filetype == ".gif")  $image = imagecreatefromgif($photo['tmp_name']);
    		if($filetype == ".jpg")  $image = imagecreatefromjpeg($photo['tmp_name']);
    		if($filetype == ".png")  $image = imagecreatefrompng($photo['tmp_name']);
    		if (!$image) die( "PROBLÈME!!!");
    		$watermark = imagecreatefromgif('watermark.gif');
    		$imagewidth = imagesx($image);
    		$imageheight = imagesy($image);
    		$watermarkwidth =  imagesx($watermark);
    		$watermarkheight =  imagesy($watermark);
    		$startwidth = (($imagewidth - $watermarkwidth)/2);
    		$startheight = (($imageheight - $watermarkheight)/2);
    		$mhmm = imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);
    		imagejpeg($mhmm, $dest_dossier.$dest_fichier);
    		imagedestroy($image);
    		imagedestroy($watermark);
    		// copie du fichier
     
    		//move_uploaded_file($result, $dest_dossier . $dest_fichier);
    		$db = mysql_connect($host, $login, $password);  // 1
    		mysql_select_db($base,$db);                    // 2
    		$now = date("d/m/Y");
    		$query="INSERT INTO album_".$id."(date,lien,description) VALUES('".$now."','".$http_dest.$dest_fichier."','".$description."')";          // 3
    		mysql_query($query)
    		or die('Erreur pendant l\'envoi de données');
    	}
     
    	else {
    		echo $erreur;
    	}
    }

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

Discussions similaires

  1. [ImageMagick] Affiche d'image anti-bot
    Par raptor1 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/09/2006, 22h43
  2. [ImageMagick] Problème de PNG
    Par bibom dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/08/2006, 10h48
  3. [ImageMagick] Redimensionnement image
    Par FoxLeRenard dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 27/02/2006, 16h53
  4. [ImageMagick] Header envoyé lors de la création d'une image
    Par KLiFF dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/10/2005, 16h35
  5. [ImageMagick] Problème de qualité d'image
    Par rigolman dans le forum Bibliothèques et frameworks
    Réponses: 40
    Dernier message: 14/10/2005, 12h38

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