8791 sujets

Développement web côté serveur, CMS

Bonjour, je crée une image avec des informations provenant d'une base de données.
La taille de l'image est de 300*171 pixels. l'image de fond pèse 44Ko (en jpg) et quand j'applique mon texte dessus et que je sors une image png. l'image pèse 113Ko...

Dans la fonction imagepng() il y a un filtre de qualité, mais peu importe l'image finale pèse toujours dans les 110Ko-113Ko

Comment je peut faire pour baisser le poids de l'image ?

Voici mon code PHP


header ("Content-type: image/png");
	$image = imagecreatefromjpeg("../../img/nextMatch.jpg");
	$sqlI = sprintf("SELECT * FROM juve_nextMatch");
	$reqI = mysql_query($sqlI) or die(mysql_error());
	$data = mysql_fetch_array($reqI);
	$imagewidth = 300;
	$imageheight = 171;
	$blanc = imagecolorallocate($image, 255, 255, 255);
	$or = imagecolorallocate($image, 252, 180, 54);
	$fontsize = "28";
	$fontangle = "0";
	$font = "../../font/blueHighway.ttf";
	$text = $data['affiche'];
	$box = @imagettfbbox($fontsize,$fontangle,$font,$text);
	$textwidth = abs($box[4] - $box[0]);
	$xcord = ($imagewidth/2)-($textwidth/2)-2;
	$ycord = 104;
	imagettftext($image, $fontsize, $fontangle, $xcord, $ycord, $blanc, $font, $text);
	$fontsize = "20";
	$fontangle = "0";
	$font = "../../font/blueHighway.ttf";
	$text = $data['type'].' - '.$data['date'];
	$box = @imagettfbbox($fontsize,$fontangle,$font,$text);
	$textwidth = abs($box[4] - $box[0]);
	$xcord = ($imagewidth/2)-($textwidth/2)-2;
	$ycord = 128;
	imagettftext($image, $fontsize, $fontangle, $xcord, $ycord, $or, $font, $text);
	imagepng($image, 'prochainMatch.png', 9);
	imagedestroy($image);
	chmod('prochainMatch.png', 0777);
	rename('prochainMatch.png', '../../img/prochainMatch.png');
Salut,

pourquoi ne pas laisser l'image de sortie en jpg ? Le jpg est plus léger dans certaines conditions.
Essaye avec une qualité de 70 à 80.
Miracle, en mettant en jpg et une qualité de 100, le poids de l'image passe a 57Ko, mais ca perd vraiment en qualité par contre !

imagejpeg($image, 'prochainMatch.jpg', 70);


Une explication pour une telle différence de poids ?


Merci en tout cas !
Modifié par DevJoe (12 Jan 2011 - 15:21)
DevJoe a écrit :

Une explication pour une telle différence de poids ?


Tous simplement la différence d'algorithme de compression des formats d'images.