Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, etc. pour PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/10/2012, 19h13   #1
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 535
Points : 7 535
Envoyer un message via Skype™ à jreaux62
Par défaut Fonctions de redimensionnement d'images

PHP - Fonctions de redimensionnement d'images
Utilisation avec BD (redimensionner image + picto après upload) ou dans un dossier.

Je me suis rendu compte qu'aucun article n'était relié à mon tutoriel !
Voilà qui est fait.


Citation:
Quand on parle de "redimensionnement" d'image, il faut distinguer :

1- Redimensionnement "à l'affichage" :
ou comment afficher ses images à la taille d'affichage voulue ?
L'image elle-même n'est pas modifiée, seules ses dimensions d'affichage sont recalculées.
- fonction fctaffichimage() : redimensionner des images "à l'affichage"

2- Redimensionnement "physique" :
modification du "poids" de l'image (nouvelle image aux dimensions spécifiées),
- fonction fctredimimage() : L'image finale est redimensionnée "en proportions".
- fonction fctdeformimage() : L'image finale est redimensionnée "sans proportions" (déformée).
- fonction fctcropimage() : L'image finale est "coupée" ("crop centré").

3- "Signature" d'image (petit "plus" !)
- fonction fcttexteimage() : "Signature" de l'image (ajout d'un texte à l'image : copyright, date, ou légende de l'image).

4- Utilisation :
- avec base de données : upload, traitement (redimensionner image + création picto), enregistrement.
- dans un dossier (répertoire) : redimensionner des images déjà présentes.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/10/2012, 20h26   #2
ABCIWEB
Expert Confirmé
 
Homme Alain
Inscription : septembre 2010
Messages : 1 917
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : septembre 2010
Messages : 1 917
Points : 2 851
Points : 2 851
Bonjour,

Je me suis intéressé pas mal aux redimensionnements des images pour proposer cette option dans cette classe d'upload.

En parcourant ton tuto j'ai remarqué que j'avais oublié de gérer la transparence pour les redimensions d'images png (contenant des transparences). C'est un cas de figure assez marginal, mais c'est intéressant de savoir qu'il existe une solution donc je n'ai pas perdu mon temps

A part cela, comme ma classe devait gérer le maximum d'erreurs possibles, j'ai implémenté une fonction qui contrôle si la mémoire disponible est suffisante pour faire le redimensionnement de l'image, car la bibliothèque GD est assez gourmande pour cette fonctionnalité et en cas de dépassement de la mémoire disponible on se retrouve devant une page blanche. Pour ceux que cela intéresse une solution est ici. C'est empirique mais cela fonctionne correctement pour les images jpg/jpeg. Si certains connaissent une fonction moins empirique je suis preneur mais pour l'instant j'ai pas trouvé mieux
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/10/2012, 20h39   #3
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 535
Points : 7 535
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par ABCIWEB Voir le message
...proposer cette option dans cette classe d'upload.
Bonjour,
tu as bien fait de passer !
Je connaissais ta Class, mais je ne savais plus où la trouver...

J'en parlerai dans une prochaine mise à jour.
Pourquoi n'as-tu pas fait un article/tuto ?
A moins que tu ne m'autorises à mettre ton script et explications directement dans mon tuto ?
(l’intérêt étant de centraliser l'info dans un seul tuto)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2012, 21h40   #4
ABCIWEB
Expert Confirmé
 
Homme Alain
Inscription : septembre 2010
Messages : 1 917
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : septembre 2010
Messages : 1 917
Points : 2 851
Points : 2 851
Citation:
Envoyé par jreaux62 Voir le message
Pourquoi n'as-tu pas fait un article/tuto ?
Un tuto sur la classe elle-même serait beaucoup trop long et elle est actuellement suffisamment documentée (selon moi) pour un usage courant.

Si tu parlais plus précisément d'un tuto concernant le contrôle de la mémoire pour les redimensionnements, bah j'ai donné le lien de la fonction que j'utilise et j'ai pensé que ceux qui sont intéressés pourront toujours voir son implémentation dans la classe d'upload.
Evidemment tu peux t'en servir comme bon te semble

En fait perso ça m'embêtais un peu de rentrer dans les détails car cette fonction est empirique... le résultat pourrait donc être faussé avec un changement de fonctionnement de la lib GD... C'est donc pas un truc qu'on peut graver dans le marbre (cela dit en programmation on a "un peu" l'habitude de cet état de fait) et d'un autre côté c'est assez simple à mettre en place.

Si je devais faire un tuto sur un des composants de la classe ce serait plutôt sur la fonction de renommage de fichiers en mode incrémentiel qui fait appel à RegexIterator ou DirectoryIterator (suivant la version disponible de php) et donne un exemple d'utilisation qui est peut-être plus intéressant pour les débutants et de façon plus pérenne. Enfin bon cette fonction (nommée "Rename_fich" dans la classe) n'est pas très difficile à comprendre non plus
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 21h40   #5
almoha
Membre habitué
 
Inscription : janvier 2010
Messages : 278
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2010
Messages : 278
Points : 109
Points : 109
Bonjour,

Je viens de consulter ce très bon tutoriel. A l'occasion de mes essais, j'ai pu relever les coquilles suivantes :

4. Redimensionnement physique "non-proportionnel"

Les 3
sont à remplacer par 3
Cette partie de code
Code :
1
2
3
4
5
6
7
8
9
 
      // Dans TOUS les cas : redimensionnement non-proportionnel
      // ------------------------
      // A- LARGEUR ET HAUTEUR fixes
      if ($W_fin != 0 && $H_fin != 0) {
         $W = $W_Src;
         $H = $H_Src;
      }
      // ------------------------
doit être modifiée comme suit :
Code :
1
2
3
4
5
6
7
8
 
      // Dans TOUS les cas : redimensionnement non-proportionnel
      // ------------------------
      // A- LARGEUR ET HAUTEUR fixes
      if ($W_fin != 0 && $H_fin != 0) {
         $W = $W_fin;
         $H = $H_fin;
      }

7-C. Utilisation dans un dossier


Il manque un ; à la fin de
Code :
1
2
 
$RedimOK = fctredimimage(150, 100, $rep_Dst, $img_Dst, $rep_Src, $img_Src)
Encore merci pour ce super tuto très instructif
almoha est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/01/2013, 10h20   #6
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 535
Points : 7 535
Envoyer un message via Skype™ à jreaux62
Merci !
Corrections effectuées.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web