lorik Posté 13 Novembre 2007 Posté 13 Novembre 2007 Bonjour, Je cherche a savoir si on peut ré-echantillonner une image en php ? je m'explique, je sais que GD permet de redimensionner une image, ok, mais 'quid' si par exemple l'image est en 300 Dpi, et qu'on veut la passer en 72 ? J'ai rien trouvé la dessus dans GD, je me demande si quelque chose existe pour ça ? Merci de vos infos
Remi Posté 13 Novembre 2007 Posté 13 Novembre 2007 (modifié) Ré-échantilloner revient toujours à redimensionner (sauf si l'on ne fait que changer la taille d'impression) : dpi = dot per inch, soit le nombre de pixels dans 2,5 cm d'affichage. D'ailleurs parler de dpi dans le cadre d'un affichage écran est un peu un abus de langage (du moins tant que tous les utilisateurs n'ont pas le même écran) Modifié 14 Novembre 2007 par Remi
lorik Posté 14 Novembre 2007 Auteur Posté 14 Novembre 2007 Bonjour, et merci de ta réponse... que je ne suis pas sur de bien comprendre (newbie ! ) Quand je suis sous photoshop, et que j'ai une image en 300 dpi, je l'exporte pour le web en 72 dpi. Donc en php, ce que je voudrais, c'est la même chose : On upload l'image sur serveur, on le redimensionne en largeur/hauter (ça c'est ok), et on la passe aussi en 72. Je ne crois pas que juste en la dimensionnant largeur/hauteur, on arrive à ce résultat, si ? Merci
Dan Posté 14 Novembre 2007 Posté 14 Novembre 2007 Ben si... cela ne te sert à rien pour le web La notion de dpi n'est importante que pour le rendu d'une impression papier. Certaines imprimantes permettent le 300dpi, d'autres le 2400. Donc une image imprimée sans précaution ne rendra pas pareillement sur ces deux medias. Mais les écrans sont quasiment tous dans la gamme des 72-96 points par pouce... donc les variations importent peu. Une image de 400 points de large fera de 4 à 5 pouces sur un écran (environ).
lorik Posté 14 Novembre 2007 Auteur Posté 14 Novembre 2007 Bonjour Dan, toujours aussi matinal Ok, je comprends, mais la logique, c'est que si on affiche en 72, ça ne sert à rien d'avoir une image en 300 : Elle ne s'affiche pas mieux, ok, mais elle est surtout très lourde ! C'est pour ça qu'on essaie de l'alleger. Donc je reformule ma question : Comment peut on alleger une image en php (autre que de changer sa taille) ? en fait, c'est pour une galerie photo : Les internautes upload des images, on les affiche en liste derriere, je ne veux pas que le navigateur ait à charger 50 images de 2 Mo chacune. Merci
Dan Posté 14 Novembre 2007 Posté 14 Novembre 2007 Sur un écran, une image de taille 640x480 s'affichera de la même manière qu'elle soit en 72dpi ou en 2400dpi. C'est la taille de l'image qui impacte son rendu à l'écran, pas le dpi. Par contre, celle en 2400dpi s'imprimera en beaucoup plus petite taille. Dans l'exemple, les fichiers auront la même taille vu que l'image ne fera toujours que 640x480, indépendamment du dpi qui je te le répète ne sert que pour l'impression. Donc, ne te préoccupe pas du dpi pour le rendu à l'écran, mais fais varier la taille de l'image.
Remi Posté 14 Novembre 2007 Posté 14 Novembre 2007 Oui, comme te le dit Dan, il ne faut pas raisonner en dpi pour un affichage écran : il faut toujours sauver les images dans la dimension (en pixel) où elles seront affichées. Pour réduire le poids de tes images, tu peux jouer sur 2 choses : 1. la taille en pixels, par exemple en forçant toutes les images à avoir la même dimension, de préférence la dimension où elles seront affichées : par exemple limiter la hauteur à 400 si ces images seront affichées en gros plan en 400 pixels de haut. 2. la compression jpeg.
lorik Posté 14 Novembre 2007 Auteur Posté 14 Novembre 2007 Bonjour, Ok, donc on joue sur la taille seulement. Bon. Et pour la compression Jpg, on peut agir dessus en php avec GD ou autre ? Et ça doit imposer que l'image en entrée soit en jpg, pas en gif ou png alors ?
Cozus Posté 19 Novembre 2007 Posté 19 Novembre 2007 (modifié) Hum, je pense avoir le même problème : Sur un site où des gens envoient une image, mettons que ce soit forcément en jpeg (à la base), et que je souhaite limiter la taille à 200x200 par exemple. Forcément, c'est pour de l'affichage web, donc j'souhaite faire ça de telle sorte que la qualité de l'image, à la sortie, soit de 72DPI. Y a-t-il un moyen en php pour forcer le rééchantillonnage de l'image pour qu'à la sortie, après avoir été redimensionnée via imagecopyresampled ait non seulement la bonne taille, mais aussi qu'elle soit en 72DPI ? (Parce que simplement avoir une image de 200x200 en 300DPI, pour moi, c'est lourd, c'est 4 fois trop lourd, donc 4x trop de bande passante utilisée) Modifié 19 Novembre 2007 par Cozus
destroyedlolo Posté 20 Novembre 2007 Posté 20 Novembre 2007 Ok, donc on joue sur la taille seulement. Bon. Voila. Et pour la compression Jpg, on peut agir dessus en php avec GD ou autre ? Et ça doit imposer que l'image en entrée soit en jpg, pas en gif ou png alors ? Non, GD travaille en interne avec un format proprietaire et est parfaitement capable de lire une image GIF pour la transformer en JPEG. Le seule truc qui faut faire gaffe, ce sont les limites des differents formats. Par exemple, le GIF est limite a 256 couleurs. Quant au JPEG, il faut faire attention que le taux de compression ne soit pas trop bas, sinon l'image est crade.
Remi Posté 20 Novembre 2007 Posté 20 Novembre 2007 Et un truc à savoir est que le GIF ou PNG paletté supporte très mal le redimensionnement (c'est logique quand on connait le principe du redimensionnement... ou vous pouvez dire "rééchantillonnage" si vous avez du monde à impresionner autour de vous ) Donc, pour redimensionner un GIF et avoir un résultat décent, il faut mieux le repasser en JPEG avant de le redimensionner.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant