SNIPPET : REDIMENSIONNER UN IMAGE SANS UTILISER LA BIBLIO GD

cs_zakuli Messages postés 16 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 30 novembre 2010 - 30 nov. 2010 à 09:01
 Utilisateur anonyme - 15 déc. 2010 à 18:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52540-snippet-redimensionner-un-image-sans-utiliser-la-biblio-gd

Utilisateur anonyme
15 déc. 2010 à 18:04
Je tiens a corriger mon commentaire précédents. C'est pas la source qui est vraiment sans interêt et contre performant mais son exemple d'utilisation.

Désolé
Utilisateur anonyme
15 déc. 2010 à 18:03
Je trouve vraiment pas ca utile perso.
Redimensionner des images en html c'est une mauvaise pratique et ca diminue les performance d'un site.

Perso pour moi c'est sans interêt.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
11 déc. 2010 à 15:27
Il n'y a pas de mal, merci pour la note.
Etn3000 Messages postés 39 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 10 décembre 2010 1
10 déc. 2010 à 17:48
Ah ok, j'ai cru. Toutes mes excuses.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 déc. 2010 à 17:44
non, car comme l'a déjà souligné neigedhiver, la fonction getimagesize ne fait pas partie de la gd
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 déc. 2010 à 17:20
On peut savoir pourquoi "sans utiliser la biblio gd" est mensonger ?
Etn3000 Messages postés 39 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 10 décembre 2010 1
10 déc. 2010 à 17:15
Salut,
je pense que tu devrait changer ton titre, "sans utiliser la librairie gd" est un peu mensongé, tu ne crois pas?
++
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
6 déc. 2010 à 14:32
Bonjour,
il suffit de mettre ces lignes de code dans une page et de lancer

';'
?>
cs_rasmulti Messages postés 5 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 janvier 2011
6 déc. 2010 à 11:08
Bonjour,
comment tester si ça fonctionne ?
J'ai voulu afficher le résultat de $image_width et de $image_height avec echo, mais le résultat est :
Undefined variable...

Merci.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
1 déc. 2010 à 21:49
hmmm...
neigedhiver =>
j'avais mal interprété ta remarque sur codyx. Je ne connaissais pas cette branche du site. Comme j'avais bien fait attention à venir dans la zone astuce, je ne comprenais pas pourquoi tu me disais d'aller dans une autre zone qui me semblais être étrangère à phpcs. Je te présente mes excuses.

Winwarrior =>
A 1024*768, une image pèse environ 150ko, et 15Mo à 5Mbs c'est 24s: c'est moins de temps qu'il ne faut pour agriper l'assenceur et descendre en bas en regardant toutes les photos.
Bon, celà dit, effectivement, le coté pesant d'envoyer les images en taille réelle présente certain (gros) désavantage (Perso, je suis sur un serveur avec bande passante illimité donc je ne me soucis pas trop de ça) Pour ce qui est des smartphones, tu es dans le vrai. Par contre quand on voit la vistesse à la quelle ça va, dans un an, ils seront tous équipés d'un disque dur SSD et gavés de mémoire, donc je ne m'en fais pas trop. En 3G, on optient de bons taux de transfert, et si la zone de cache est suffisante, le surf est plus ou moins transparent.

L'idée de détecter à la main les dimension de l'image est séduisante, reste àvoir si c'est faisable... facilement je veux dire

Au fait, bien vu pour le coup de getimagesize() qui ne fait pas parti de la GD...
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 déc. 2010 à 14:28
Mais à la limite, comme le code n'utilise pas de fonction GD, tout va bien...

Je cite la doc de PHP :
"Cette fonction ne nécessite pas la bibliothèque GD."
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
1 déc. 2010 à 14:14
Pour le coup, il vaut mieux stocker une miniature pour chaque image (voir plusieurs miniatures si t'utilises plusieurs tailles), car imagine 100 photos haute définition de 2mo (200mo ?) à charger quand t'as 100 visiteurs en même temps (20go ?), ça te coutera bien + cher en bande passante que l'espace pris par des miniatures sur le disque dur.
Et sans parler de ça, tout le monde n'a pas 20mbps à la maison, surtout avec le développement du web sur smartphone en connexion 3G/edge.

Sinon, ce qui serait intéressant à implémenter dans ton code, ça serait de détecter le type de l'image (jpg, png, etc..) et de récupérer la taille de l'image toi même sans utiliser de fonction GD.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 déc. 2010 à 09:05
Je sais pas comment on peut faire plus clair que ce que j'ai écrit... Les snipopets se postent sur codyx.org. Ici, on est dans la zone SOURCES.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
1 déc. 2010 à 07:25
Zakuli, Winwarrior =>
Bon d'accord, le titre porte peut être à confusion, mais le principe est là malgré tout. Et oui c'est vrai, j'utilise la fonction getimagesize qui fait partie de GD. Mais c'est tout.

neigedhiver =>
On est justement dans la zone... : snippet. Donc oui, c'est le bon endroit pour poster ce genre de petit bout de code. Et je ne vois pas pourquoi coddyx serait un meilleur endroit pour mon script qu'ici. A moins que tu ne considère mon script comme un déchet et coddyx comme une poubelle? Mais ça, ça ne serait pas gentil de ta part et celà ne te ressemblerait pas du tout...

Si je dois redimensionner en direct avec php, ça me pompe de la ressource proc (ex: si j'affiche un gallerie de 100 photos et que mon script doit se charger de toutes les redimensionner à la volée, le tout consulté par 100 internautes en même temps : il me faut un monstre de serveur).

Evidemment, je pourrais stocker les miniatures au bon format directement sur le disque sur serveur, mais que se passera-t-il un jour si je veux afficher des miniatures de 10px de plus sur chaque dimension? Il, faut je regénère toutes les miniatures. De même, si je veux afficher une taille de miniature sur un listing, mais une autre taille dans un descriptif, et puis encore une autre pour un autre affichage? Il faut que je stocke toutes les miniatures aux bon format?... no way

Alors, puisque les browsers savent très bien redimensionner les images à la volées et que les connexions ADSL permettent à l'utilisateur d'avoir un débit suffisant, je choisi l'option d'envoyer la photo entière et de dire au browser de me l'afficher aux bonnes dimensions. D'autant que le chache du browser permet de ne télécharger la photo qu'une fois.

Quand une photo est uploadée sur le serveur, elle est redimensionnée avec GD au format max 1024*768 (ce qui n'est déjà pas mal), puis envoyée à l'internaute telle quelle. Le browser se charge du redimensionnement. Par contre, pour qu'il puisse le faire, il faut calculer les bonnes dimensions pour ne pas que le découpage HTML soit décalé, ni que l'image soit déformée si les proportions ne sont pas respectée.

Donc oui effectivement, je ne redimensionne pas l'image dans le sens ou je la stocke en miniature, mais le résultat est que mon image est redimensionnée une fois affichée à l'écran, donc techniquement, j'ai redimensionné mon image...
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
30 nov. 2010 à 12:25
Surtout que la fonction getimagesize() fait partie de la librairie GD : http://fr.php.net/getimagesize
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
30 nov. 2010 à 11:09
C'est limite foutage de gueule de poster un snippet ici, y'a coddyx qui sert à ça :
http://www.codyx.org
cs_zakuli Messages postés 16 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 30 novembre 2010
30 nov. 2010 à 09:01
Le titre n'est il pas un peu abusif ? Je ne vois pas réellement de redimensionnement d'image mais plutôt des calculs sur ses dimensions.
Rejoignez-nous
A voir également