2010-01-20 6 views

Répondre

3

Tout d'abord, bienvenue dans StackOverflow.

Sauf si vous fournissez des tests/screenshots nous ne pouvons pas faire grand-chose pour vous aider, vous semblez être en utilisant la bonne combinaison de fonctions (imagecreatetruecolor/imagecopyresampled) donc ma première estimation irait à l'argument $quality dans imagejpeg et imagepng les fonctions.

Pour imagejpeg Je vous suggère d'utiliser $quality = 90. Pour imagepng devrait être $quality = 9.

Vous pouvez également essayer affûter l'image en utilisant une convulsion comme celui-ci juste avant d'enregistrer l'image:

ImageConvolution($dst_image, array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1)), 8, 0); 

Pour 3rdparty bibliothèques j'entends WideImage et Asido sont très bons.

+0

Salut, merci pour votre belle réponse, j'ai regardé WideImage, semble très utile, mais redimensionne-t-il et recadre en même temps si l'image est trop longue ou trop large? Je veux que la taille finale soit de 40x40 images si larges seront recadrées un peu de côtés pour s'adapter merci beaucoup –

+0

@Marlene Brant: Oui, vous n'obtiendrez pas la même fonctionnalité exacte - Je vous suggère de poster quelques exemples d'images et de sortie respectifs afin que nous puissions vous aider davantage. –

1

Si vous avez accès à ImageMagick, qui est généralement assez répandue sur les serveurs web, vous pouvez vous épargner beaucoup de maux de tête en utilisant la commande buit-in convert:

$cmd = escapeshellcmd("env convert -thumbnail $format " . 
    $_FILES['field_name']['tmp_name']; . " -interlace Line -enhance ". $tmp_name); 
+0

Merci pour la réponse, malheureusement, je n'ai pas accès à imageMagick. –

+0

imageMagick aka imagick est un choix supérieur, bien que si vous ne pouvez pas mettre à jour le PHP.INI alors vous ne pouvez pas y accéder. – TravisO

Questions connexes