Identifiants personnels


Moi ... Moi ... et re Moi
« [UBUNTU] Compiler Flvtool2   Informatique  [SPIP] Spip.ici.ous »

[SPIP Plugins] Image Modifier aka photospip ?

mardi 11 mars 2008, modifié le 18 mars 2008, par Quentin Drouet

Aucun tag n'est associé

L’idée de ce plugin pour spip est de permettre la modification depuis l’espace publique des documents "images" associés à des éléments du site.

Ce plugin nécessite dans beaucoup de cas des ressources importantes et est donc destiné au possesseurs de "bons" hébergements, voir (uniquement) de serveurs dédiés.

La méthode

  • On part depuis une image source que l’on nommera image_originale.ext par la suite
  • Chaque modification de l’image par l’ajout d’un filtre ou une modification de la taille depuis l’interface créera une image dénommée image_originale-modimage-X.ext ou X s’incrémentera en fonction de la succession des effets
  • Ainsi on garde une sorte d’historique des images qui pourront être comme ceci :
    • image_originale.ext
    • image_originale-modimage-1.ext
    • image_originale-modimage-2.ext
    • image_originale-modimage-3.ext
    • image_originale-modimage-4.ext
    • (...)
  • Ces références à des documents intermédiaires sont mis de coté dans une table intermédiaire que l’on nommera "spip_documents_inters", ainsi rien n’est perdu dans l’immédiat et on peut afficher ces étapes intermédiaires pour y revenir par la suite.
  • Afin de ne pas encombrer inutilement le disque du serveur avec des images qui ne servent à rien (étapes de l’appllication de plusieurs filtres), les images intermédiaires seront néttoyées par cron à intervalle fixé dans l’interface de configuration (CFG). Les étapes intermédiaires deviendront alors inaccessibles puisque supprimées.
  • Ainsi, à la fin de tout cela, il ne nous restera que 2 images, image_originale.ext (qui est l’image originale qui ne bougera jamais) et image_originale-modimage-X.ext ou X représente le dernier numéro de version.

NB : à tout moment, il doit être possible de revenir à l’image originale à l’aide d’un bouton dans le panel de modification.

La table spip_documents_inter

  1. $documents_inters = array(
  2.         "id_documents_inter"    => "bigint(21) NOT NULL AUTO_INCREMENT",
  3.         "id_document"   => "bigint(21) NOT NULL", //document original
  4.         "id_auteur"     => "bigint(21) NOT NULL", //qui a modifié
  5.         "extension"     => "VARCHAR(10) DEFAULT '' NOT NULL",
  6.         "fichier"       => "varchar(255) DEFAULT '' NOT NULL",
  7.         "taille"        => "integer",
  8.         "largeur"       => "integer",
  9.         "hauteur"       => "integer",
  10.         "mode"  => "ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL",
  11.         "version" => "bigint(21) NOT NULL",
  12.         "maj"           => "TIMESTAMP", //quand ca a eut lieu
  13. );
  14.        
  15. $documents_inters_key = array(
  16.         "PRIMARY KEY" => "id_documents_inter, id_document",
  17.         "KEY id_document"       => "id_document",
  18.         "KEY id_auteur" => "id_auteur");
  19. global $tables_principales;
  20. $tables_principales['spip_documents_inters'] = array(
  21.         'field' => &$documents_inters,
  22.         'key' => &$documents_inters_key);
  23. global $tables_jointures;
  24. $tables_jointures['spip_documents_inters'][] = 'documents';
  25. $tables_jointures['spip_documents_inters'][] = 'documents_articles';
  26. $tables_jointures['spip_documents_inters'][] = 'auteurs';
  27. global $table_des_tables;
  28. $table_des_tables['documents_inters']='documents_inters';

Les modifications possibles

Tout d’abord on se base sur les possibilités par défaut de spip fait le tour de tout ce qui peut nous intéresser :

Pour les actions :

L’action TOURNER, déjà présente dans l’admin de spip (à modifier certainement pour la gestion de nos versions)

Pour les filtres :

Tous les filtres d’images de base de spip à savoir :

  • image_alpha
  • image_flip_horizontal
  • image_flip_vertical
  • image_flou
  • image_gamma
  • image_nb
  • image_recadre
  • image_rotation
  • image_sepia

Les filtres supplémentaires du plugins fonctions images :

Les contraintes

  • D’après Arno* (et il a fortement raison), le format Jpeg est fortement destructeur et l’application de modifications successives sur un fichier de ce format engendrerait une perte de qualité importante à chaque fois. Sa solution (dans le même article) consisterait à passer par une étape intermédiaire en transformant l’image en PNG 24 (Portable Network Graphics) qui, lui, n’est pas destructeur. À la création de la première version l’équivalent du filtre "|image_alpha{0}" est donc appliqué automatiquement.
  • Ce plugin nécessite :
    • Spip 1.9.3 svn révision 11315 (Je n’ai pas testé en dessous)
    • Le plugin cfg développé par toggg et marcimat
    • jQuery (1.2.3)
    • Le plugin UI
    • Le plugin farbtastic pour jQuery
    • Le plugin imgAreaSelect pour jQuery

Portfolio

Répondre à cet article


commentaires fermes
  • [SPIP Plugins] Image Modifier aka photospip ? 29 mars 2011 14:42, par artlo

    Salut Quentin, j’essaie ton plugin photospip. Heu... dans le site public je ne vois rien de bien différent. Non plus dans la médiathèque. Pourtant l’installation des tables ’modifier images’ semble OK. Y a-t-il une classe à rajouter ? Je suis sur la dernière version de spip. @+ Stephan

Propulsé par : SPIP 2.1.26 SVN [21335]