begin process at 2008 07 20 22:32:33
1 213 497 membres
398 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE DE MINIATURISATION D'IMAGES AVEC GD


Information sur la source

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é: 3 627 / 429

Note :
Aucune note

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

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).
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

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.
  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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        

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.          

  • signaler à un administrateur
    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é).

      

  • signaler à un administrateur
    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.)
      


        

  • signaler à un administrateur
    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

  • signaler à un administrateur
    Commentaire de guill76 le 21/08/2006 22:32:03

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

  • signaler à un administrateur
    Commentaire de barnaky le 21/08/2006 22:58:18

    ovh est en PHP5 ? Free est en PHP5 ?

  • signaler à un administrateur
    Commentaire de malalam le 22/08/2006 09:30:49 administrateur CS

    Barnaky => ben oui...

  • signaler à un administrateur
    Commentaire de lordbdp le 19/05/2007 05:04:32

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

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS