begin process at 2010 02 10 00:48:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > CLASSE DE MINIATURISATION D'IMAGES AVEC GD

CLASSE DE MINIATURISATION D'IMAGES AVEC GD


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :miniatures, images, thumb, miniaturisation Niveau :Débutant Date de création :03/08/2006 Date de mise à jour :14/08/2006 01:29:54 Vu / téléchargé :4 644 / 477

Auteur : guill76

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voilà une énième classe de miniaturisation d'images MAIS :
J'espère avoir fait une classe optimisée au niveau des traitements de redimensionnement qui peuvent consommer beaucoup.
Cette classe permet quelques fonctionnalités (le code sera plus parlant qu'une simple description).  
RQ : elle utilise une source que j'ai déjà postée ici (la gestion de fichier de confs).



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 août 2006 23:44:47 :
Planté de fichier ini.php désolé + 2 ou 3 peaufinages
04 août 2006 20:07:35 :
Correction pour la casse des extensions.
04 août 2006 22:05:06 :
Génération des fonctions dynamiques avec le mime type retourné par getimagesize
04 août 2006 23:35:40 :
Ajout de la gestion des proportions
05 août 2006 00:06:42 :
Dernière rectification sur 1 contrôle.
06 août 2006 16:54:25 :
Ajout de nouvelles options de resize.
06 août 2006 18:17:43 :
Problème avec fonction round
06 août 2006 19:59:15 :
1 - Contrôle sur le max et le min pour LIMITEDBYBIGGEST,LIMITEDBYSMALLEST 2 - Ajout d'un tableau pour les messages d'erreurs
08 août 2006 22:10:09 :
Dérivation de la classe : Gère maintenant le rétrécissement des fichiers modifiés en taille ou par date.
09 août 2006 01:25:10 :
Dernière MAJ : correction d'1 bug lors de la suppression d'une image.
10 août 2006 23:08:22 :
Mise en ligne d' 1 interface graphique + quelques maj + capture d'ecran
12 août 2006 00:39:22 :
De moins en moins de bugs + exemple de gestion multi galeries.
12 août 2006 01:39:24 :
.
12 août 2006 02:32:08 :
Cette dernière version permet maintenant la reprise d'un redimensionnent perdu lors d'1 delai d'éxécution dépassé. Ainsi on peut mettre 200 grosses images en 1 fois dans la galerie et le redimensionnement reprend à l'endroit où il s'était arrété sans avoir à modifier le php .ini.
12 août 2006 02:48:16 :
Oublié le zip
13 août 2006 23:25:47 :
Correction d'un bug : 1 fois / 10 le script plantait lors du dépassement d'éxécution si celui ci survenait pendant l'appel de la fonction set_infile : dans ce cas, il n'y avait pas de reprise possible. Ajout d'un contrôle sur la valeur de max_execution_time du fichier php.ini.
14 août 2006 01:29:54 :
Mise au point d'un système de recharge du script(1 ligne de JS) lorsque le delai est en cours d'expiration. Même plus besoin de relancer le script on peut maintenant réduire des centaines et des centaines de photos que dis-je des milliers (si l'espace disk le permet) sans interruption du script: 2 nouvelles propriétés et la méthode setAuto_reolad ont été rajoutées à la classe thumbv2(cette méthode prend en param l'id du formulaire html qui a lancer le resize) A essayer à tout prix (avec une quarantaine de photos numériques ), suis trop fier la dessus.

 Sources du même auteur

CLASSE FEUILLE DE TEMPS PHP5
PHP 5 CLASSES DE REDIRECTION DES EXCEPTIONS DANS UN SYSTÈME...
[PHP5]AUTHENTICATION MANAGER
Source avec Zip Source avec une capture PHP 5 CLASSE CALENDRIER QUI RENVOIE LA DATE CLIQUÉE DANS 1 É...
Source avec Zip Source avec une capture PHP5 CLASSE ARBRE INVERSÉ (HUFFMAN) COMPRESSION DECOMPRESSIO...

 Sources de la même categorie

Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan
Source avec Zip POO - FACTORY CLASS par Waredan
POO - SINGLETON CLASS par Waredan
POO - PARAMETERHOLDER CLASS par Waredan

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Y.A.P.C. 'YES ANOTHER PICTURES CLASS' par inwebo
Source avec Zip FUNCTION IMAGE SIMPLE ET ARRAY par astro53
UPLOAD + AFFICHAGE ET SUPPRESSION DU CONTENU D'UN DOSSIER (I... par mondherclubiste
Source avec Zip CRÉATION D'UNE MINIATURE AVEC UNE LARGEUR OU UNE HAUTEUR MAX... par medium69
Source avec Zip Source avec une capture EAGLEIMAGE - - - TRAITEMENT ET STOCKAGE D'IMAGES par CyrilElan

Commentaires et avis

Commentaire de malalam le 04/08/2006 13:36:10 administrateur CS

Hello,

j'ai regardé rapidement, et je suis géné par quelques trucs :
- ta classe ne permet pas de gérer les proportions. Genre, je veux redimensionner en gardant les proportions...je veux redimensionner en gardant les proportions sur le côté le plus grand, ou le plus petit, etc etc...
- pourquoi n'utilises-tu pas getimagesize () pour récupérer le type mime de ton image, au lieu de récupérer une hypothétique extension ? En plus, ça t'économiserait ton tableau énorme pour stocker les types, et la fonction équivalente...et puis bon, concernant ce tableau, tu aurais pu te passer de la casse facilement, aussi. Si j'écris JpEg, tu fais comment ? ;-). Et il y a une fonction dédiée à la création dynamique de fonctions : create_function ().
- enfin, dommage que le fichier de conf ne soit pas plutôt un départ...je veux dire : je le crée à la main, et la classe le lit pour se configurer correctement. Voir parse_ini_file par exemple.

Commentaire de guill76 le 04/08/2006 20:03:04

Garder les proportions sur le coté le plus grand??? ça veut dire quoi malalam ?.

Soit l'image est reduite en gardant ses proportions (donc sur les 2 cotés) comme ici, soit tu lui autorise la déformation (moi non) .
Là sincérement je vois pas trop ce que tu veux dire.

Sinon , bien vu pour la casse des extensions j'avais loupé ça : je peux corriger ça rapide.

Pour le fichier de conf, l'idée est d'avoir une trace du dernier redimensionnement effectué pour eviter de le rejouer à chaque ajout d'images sur les images déjà présente

Exemple:
A: 1 admin met 10 images (non réduites ) dans la galerie principale:
l'admin du site effectue son redimensionnement à 5% de l'original:
Lors du premier resize toutes les photos seront créées et réduites dans leur totalité à l'interieur du rep thumb. la chaine reduction = 0.05 est stockée dans le fichier de conf qui est créé.

B: Plus tard l'admin décide de rajouter une photo sans changer la reduction qui lui convient. Le resize s'effectuera uniquement sur la photo ajoutée (grâce à la trace laissée dans le fichier de conf lors du 1er resize).

Mais ça n'empêche pas à l'utilisateur d' ajouter dans le fichier de configuration à la main exemple la ligne :
Thumb=0.05
Puis d'écrire ceci pour l'instanciation:
$test = new thumb('img',get_infile('conf.ini','Thumb')+0);
.....
...
et là t'as ta valeur de configuration en entrée.
Voilà je corrige et je rezippe.
Merci.







Tu peux voir cette source comme un module d'administration        

Commentaire de guill76 le 04/08/2006 23:32:26

J'avais pas tilté et maintenant, j'ai enfin tilté pour les proportions.
Donc j'ai modifié. Et effectivement c'est mieux comme ça, enfin, ça a l'air de marcher, je reposte encore la source version Malalam.
Merci pour tes remarques. J'espère que ya pas de bugs avec ces modifs, j'en ai pas vu pour l'instant.

Commentaire de malalam le 05/08/2006 19:14:23 administrateur CS

Regarde mon code de miniaturisation (un truc du genre : fonction générique de redimensionnement d'images, je crois, pour le titre), ça te guidera pour effectuer quelques optimisations, et quelques ajouts d'options.

Commentaire de guill76 le 06/08/2006 17:13:29

Salut, je viens de le faire, du coup je me retrouve presque avec le même code que le tien pour la fonction resize, à l'exception que je n'utilise pas  l'option de reduction avec deformation et que je n'ai pas gardé le createfunction (car cela revient sensiblement au même d'utiliser les variables dynamiques, enfin je pense). Bon voilà il me semble que cette classe devient maintenant assez interessante. J'ai mis en plus, dans cette correction, les méthodes et propriétés en protected au cas où, il viendrait à l'idée de quelqu'un, de la dériver.

Pour le ini, étant donné qu'il n'y a que tres peu de paramètres à charger, je laisse ma fonction qui récupére et enregistre les param 1 à 1:

Pour 2 ou 3 paramètres, y a pas de mal, sinon, dans le cas d'une pelletée de params, il serait effectivement préférable d'utiliser parse_ini_file pour les charger, tous, dans un tableau.          

Commentaire de guill76 le 09/08/2006 01:32:41

Je voudrais juste faire un complément d'explication car maintenant cette classe qui se voulait simple est devenu plutôt compliquée pour un débutant.
Les fonctionnalités qui ont été ajoutées dans ma dernière MAJ du 09/08:
   Une détection automatique des modifications de la galerie principale(pas seulement l'ajout ou la supprsession mais aussi la modification de la taille ou de la date d'un fichier image connu) ce que j'ai appelé trigger : une sorte d'évenement déclencheur du resize.
On peut maintenant définir le nom de son fichier de configuration.
J'ai amélioré aussi la gestion des erreurs.
Pour constater les bienfaits de cette classe on peut s'amuser à:
   Ajouter 10 images de 1 MO dans la galerie, Lancer le script (30 sec de traitement sur P3).
   Supprimer manuellement ces 10 images de la galerie principale, en modifier 1 sur les 10 en local, les redéposer toutes dans le bon répertoire et relancer le script.(3 sec pour 10 images=>seule la modifiée est redimensionnée)    
   Ajouter 1 image dans la galerie ,lancer le script(3 sec de traitement pour un P3)
   Réenregsitrer 1 image déjà existante dans la galerie sans changer sa taille(puis paramètrer le trigger à UPDATEDBYFILETIME dans le script) et le lancer (3 sec de traitement sur P3).
   Supprimer 1 image et lancer le script (aucun resize =>instantanné).

  

Commentaire de guill76 le 13/08/2006 23:47:35

Salut,
Suite à un repost de mes scripts, de nouvelles remarques:  
Une nouvelle classe héritée est présente (thumbV3 mise à jour du 13/08), mais est en cours de réalisation, donc je ne garantie rien quand à son utilisation étant donné que je l'ai livrée brute de décoffrage, à vous le choix de la garder ou non.
(Elle permettra de gérer dans un futur proche l'historisation des paramètrages.)
  


    

Commentaire de barnaky le 19/08/2006 21:13:26

Parse error: parse error, expecting `')'' in d:\program files\easyphp1-8\www\projet\classethumb\system.php on line 8

Commentaire de guill76 le 21/08/2006 22:32:03

Passes au php5: ça pourra jamais marcher sur easyphp1.8.

Commentaire de barnaky le 21/08/2006 22:58:18

ovh est en PHP5 ? Free est en PHP5 ?

Commentaire de malalam le 22/08/2006 09:30:49 administrateur CS

Barnaky => ben oui...

Commentaire de lordbdp le 19/05/2007 05:04:32

Toujours pas de migration vers PHP5 ?Dommage car c'est un script bien pratique...

Commentaire de jlbrenas le 10/10/2008 00:10:53

Bonsoir,
Je viens de découvrir cette classe et ma question est celle d'un débutant en PHP.
Est-ce qu'il est possible d'utiliser ce script avec un upload de photos qui doivent être limitées au niveau du poids (ex. 500 Ko) ?
Cordialement.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb de miniatures avec des images lourdes [ par tinos26 ] Bonjour, voila j'ai mis en place un site dynamique qui affiche à la volée des photos.Celle-ci avant d'etre telechargées par les users, création de miniatures à partir d'une bdd [ par fornatus ] Bonjour j'aimerais connaitre le code permettant de créer une galerie de miniatures d'images (256*192 px, 5images par lignes) à partir d'images dont le Images miniatures par scrollbar [mysql] [ par csosiris ] Bonjour, je voudrais savoir comment faire un "diaporama" d'image en passant par leur lien, range dans une bd mysql.Les images seraient affichees en li Recupération des dimensions d'une images [ par psyckan ] Bonjour,Voila j'essaie de faire tourner un diaporama avec un systeme de vignettes que l'on clique pour afficher l'images de taille réelle dans une div besoin d'aide [ par acksad02 ] Bonjour à tous!  Je viens de faire mon premier pas en programmation Web et je voudrais vous solliciter pour ce qui suit: J'ai céer un formulaire perme Rendre impossible à un utilisateur de se connecter directement à l'adresse http://www.monsite.com/images/ [ par flaydeer ] J'ai crée un répertoire 'images/' dans lequel je mets des fichiers qui sont utilisés par la plupart des pages.   Et je images aléatoires [ par loblobloblob ] Bonjour,sur un site j'aimerais que des images de présentations sont tirer au hasarda chaque visite, pour cela je pense qu'il faut passer par du php, m Petit problème avec un code php du site [ par Antho59540 ] Bonjour, Comme l'auteur d'un des ocdes phph n'a plus l'air d'être là je poste un sujet ici ^^' Voila j'ai télécharger le code là > http://www.php inserer less liens url d'images dans une base de données [ par hannao ] bonjour tous le monde, voilà d'un côté j'ai fait un code pour faire des vignettes qui fonctionne bien.J'ai un dossier images qui contient x dossier im image php [ par chaman35 ] Bonjour,j'ai un gros soucis sur mes pages .php elles n'affichent pas les images, je les ai importé comme si c'était une page html exemple :<img src


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales