imagettftext sans perte de qualité

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 : imagettftext sans perte de qualité

Re: imagettftext sans perte de qualité

par Elie » 28 avr. 2010, 15:37

Je m'auto repond :)

Apprenez que un imagepng compresse automatiquement l'image.
Il existe un paramettre compression qui contrairement à ce que dit la faq ne va pas de 0 à 9 mais de 0 à 100%
imagepng($sourceImage, $destFileName, 100)
et le tour était joué !

imagettftext sans perte de qualité

par Elie » 28 avr. 2010, 15:27

Bonjour,

Je souhaite écrire sur une image sans perdre en qualité.
En effet, mon image originale passe de 60Ko a 15Ko après avoir ecrit dessus.

Voici le code que j'utilise.

J'utilisais imagecopyresampled puis je suis passé a imagecopy mais pareil :/
			// Récuperation de l'extension
			$extension = getExtention($originalFileName); 
						
			  if (preg_match("/^jpe?g$/i", $extension)){ 
			  $sourceImage = imagecreatefromjpeg($originalFileName); 
			  $jpeg = TRUE; 
			  } 
			  if (preg_match("/^png$/i", $extension)){ 
			  $sourceImage = imagecreatefrompng($originalFileName); 
			  $png = TRUE; 
			  }
			  if (preg_match("/^gif$/i", $extension)){ 
			  $sourceImage = imagecreatefromgif($originalFileName); 
			  $gif = TRUE; 
			  } 
			  
			 $imgWidth = imagesx($sourceImage); 
			 $imgHeight = imagesy($sourceImage); 
	
			 $newImage = imagecreatetruecolor($imgWidth, $imgHeight); 
			 $noir = imagecolorallocate($newImage, 0, 0, 0);
			 $gris = imagecolorallocate($newImage, 51, 51, 51);
			 $imagecopyresampled = imagecopy($newImage, $sourceImage, 0, 0, 0, 0, $imgWidth, $imgHeight);
		
			 imagettftext($newImage, 9, 0, 295-(strlen($pseudo)*6), 20, $gris, 'include/fonts/handsean.ttf', $pseudo);
			 imagettftext($newImage, 6, 0, 300, 20, $noir, 'include/fonts/Standard0753.ttf', ' x kicks-box.com');
			 
			 !empty($jpeg) ? imagejpeg($newImage, $destFileName) : false; 
			 !empty($png) ? imagepng($newImage, $destFileName) : false; 
			 !empty($gif) ? imagegif($newImage, $destFileName) : false; 
			 imagedestroy($newImage);
Edit : J'ai viré imagecopy et pareil.
			 $newImage = imagecreatetruecolor($imgWidth, $imgHeight); 
			 $imagecopyresampled = imagecopy($newImage, $sourceImage, 0, 0, 0, 0, $imgWidth, $imgHeight);
Merci,

Elie