Création automatique de vignettes
But
Lors de l'envoi d'une image vers le serveur, création d'une vignette à afficher sur la page, avec un lien sur une plus grande image.
Solution
Le module Minimage : -- Merci de signaler d'éventuels problèmes dans le paragraphe de discussion (vous pouvez le faire en Français), ou par courriel (sur la page originale, pas sur la copie locale, voir les liens en bas de page).
- minimage.zip script et documentation.
- minimagefr.zip documentation en Français
Ajouter la ligne suivante dans le fichier local/config.php
include_once("cookbook/minimage.php");
Utilisation
Ecrire Img:image.ext
à l'endroit souhaité de la page. Par exemple :
Img:MonImage.jpg
Si les dimensions par défaut ne vous agréent pas, vous pouvez imposer les dimensions en précisant Img:small_size.plain_size.image.ext
. Par exemple:
Img:150*800*autreimage.gif
Nota : l'usage du point comme séparateur de dimension n'est plus supporté. Vous devez supprimer les dimensions définies avec une point pour avoir des liens encore fonctionnels - désolé, c'est lié aux noms d'images comportants uniquement des chiffres -
Le type d'image est limité à jpeg, gif et png. Quand on clique sur l'appel ''Img:'', un écran va s'ouvrir pour vous inviter à télécharger votre image et à créer ou modifier les informations IPTC.
Pour forcer le redimensionnement d'une image existante, préfixez par une étoile (*), qui devra être supprimée ensuite:
Img:*220*1024*monimage.jpg
Attach:ExImg.png |
Après validation de l'entrée, les images sont redimensionnées et stockées sur le disque dur.
Il n'y a pas de limitation de taille (mais votre serveur à probablement des limitations), mais des fichiers défaillants seront automatiquement effacés, et les images sources de trop grande taille seront redimensionnées.
Ce script ne redimensionne pas les images plus petites que (1.15 * taille requise) - pour limiter la perte de qualité lorsque la taille est légèrement supérieure à celle requise.
Site exemple :
- http://www.rouzeau.net/w3/pmwiki.php?pagename=Main.WikiSandbox
le mot de passe d'envoi est 'miaou' .
Vous pouvez aussi télécharger les images par FTP. Elles seront redimensionnées au premier affichage. Dans ce cas, les informations IPTC seront celles par défaut pour le titre et les instructions spéciales, et le titulaire du copyright sera le premier à afficher les images... (son nom sera lu sur le cookie d'auteur). Pour les fichier envoyés par FTP, l'extension de l'image doit être en minuscule.
- La petite image est stockée comme image.s.ext (affichée sur la page)
- L'image normale est stockée comme image.p.ext (la petite image renvoie vers celle-ci)
- L'image d'archive est stockée image.ext (non affichée)
Si l'image normale est de la même taille que l'image d'archive, l'archive sera automatiquement effaçée.
Cette image d'archive peut être affichée par Attach:image.ext
.
Cette archive a une taille maximum et sera redimensionnée si elle dépasse le maximum. Si vous voulez supprimer automatiquement les images d'archive, définissez une taille maximum pour l'archive identique à la taille normale.
Si la petite image est de la même taille que la grande image, il n'y aura pas de lien vers la grande image. Ainsi par exemple :
Img:350*350*UneImage.jpg
sera simplement affichée avec une dimension de 350 pixels.
Configuration
Sur PmWiki2 seulement. Nécessite d'avoir la librairie GD version 2.03 et au delà (pour permettre le rééchantillonage d'image). Cette librairie fait partie de la distribution PHP mais n'est pas toujours installée parce que son installation est délicate et qu' elle utilise beaucoup de ressources machine. Si le redimensionnement n'est pas possible, un message sera affiché.
Nécessite l'activation sur PmWiki des envois de fichiers. Le répertoire de stockage est le même que celui des fichiers.
#$WriteGif=FALSE; // Force l'inactivation de la création de fichiers 'gif' # (défaut TRUE, mais vérifie l'existence de la fonction) #$DispIPTC=FALSE; //Stoppe l'entrée interactive des infos IPTC,défaut TRUE $img_smallsize = valeur; //Taille de l'image affichée, défaut 256 $img_plainsize = valeur; //Taille de l'image liée, défaut 768 $img_archsize = valeur; //Taille maxi de l'archive sur disque, défaut 1280 ## Mettre la taille de l'archive égale à la taille de l'image liée ## efface automatiquement les archives #$OverSize = valeur;//surdimension n'entraînant pas de retaillage,défaut 1.15 ## Informations IPTC par défaut (images jpeg seulement) $def_iptc_caption = 'text'; # S'il n'y a pas de titre, par defaut 'Image collected on a PmWiki' $def_iptc_copyright = 'text'; # S'il n'y a pas de copyright et si l'auteur est inconnu, vide par défaut $def_iptc_special = 'text'; # *ajouté* aux instructions speciales déjà existantes, par défaut vide. # Peut être utilisé pour définir une licence (cc ou artistique ou autre).
Les chaînes par défaut définies ci-dessus peuvent être modifié par le module de traduction (voir paragraphe ci-dessous)
Quand la saisie interactive des informations IPTC est désactivée, les valeurs paramétrées sont utilisées, et l'auteur (tel que défini dans le cookie) est défini comme titulaire du copyright, s'il n'y a pas de valeur pas défaut. Pour inactiver cette définition d'auteur, mettez un '-' ou un autre caractère comme auteur par défaut.
Traduction
Vous devez activer la page XLPageCookbook et sélectionner dans cette page les chaînes correspondant au module Minimage.
Attention!, contrairement à ce qu'on voit parfois (pour une question de présentation), les chaînes de caractères dans une XLPage doivent être écrites sur une seule ligne - à corriger lors de l'intégration
Limitations
- je n'ai pas été capable de réécrire les informations IPTC sur les images qui en possèdent déjà. Aussi dans ce cas, les informations ne sont pas modifiées.
Je n'ai aucune idée du problème, aussi si vous êtes apte à comprendre ce genre de choses, voici des liens sur le code source de la fonction iptcembed() :
- www.koders.com
- lxr.php.net
Si quelqu'un de compétent peut jeter un oeil... - Même si la création d'image gif est censée fonctionner, ceci n'est pas forcément excact. Chez mon hébergeur, cela conduit a une erreur interne du serveur.
Pour forcer l'inactivation de la création d'images gif, mettez $WriteGif=FALSE; (dans le fichier de configuration) - Si la création de gif n'est pas autorisée, le module crée des images jpeg avec l'extension '.gif'.
Ceci n'est guère élégant mais c'est géré sans problème par la majorité des navigateurs.
Améliorations potentielles
- Gérer le format 'Déjà vu' (.djvu) ? à plus longue échéance... des commentaires ?
License
GPL
Historique
- 27 Nov. 2004 V0.1 - 1ère émission - Mon premier script PHP, et ce ne fut pas facile! Il faut dire aussi que je n'ai pas commençé par le plus aisé...
- 28 nov. 2004 V0.2 - Résolution des problèmes avec les pages contenant des lettes accentuées.
- 29 nov. 2004 V0.3 - Résolution du problème avec l'extension .jpeg. Autorisue l'utilisation des majuscules comme extension (mais stocké en minuscule sur le disque dur)
- 1 déc. 2004 V0.4 - Présentation - Ajouté le paramètre $WriteGif pour bloquer l'écriture des gif. Ajouté $DispIPTC pour permettre/bloquer l'entrée interactive des informations IPTC.
- 26 déc. 2004 V0.5 - Corrigé pour fonctionner avec PmWiki 2.0Beta10 et au delà
- 8 jan. 2005 V1.0 - Rechargement des vignettes fonctionnel - paramètre $OverSize
- 16 jan. 2005 - Ajout de la documentation utilisateur dans le fichier zip
- 16 jan. 2005 V1.1 - Supprimé la fonction glob(), qui n'existe pas sur toutes les installations
- 30 jan. 2005 V1.2 - Ajouté la possibilité de forcer des dimensions
- 31 jan 2005 V1.3 - Sérieux nettoyage du code, ajouté log des envois dans les fichiers (All)RecentUploads
- ___fév 2005 V1.4 - Accepte un mélange minuscules/majuscules dans les extensions
- 13 fév 2005 V1.5 - On peut forcer le redimensionnement d'image en préfixant par * - Il n'y a plus de lien vers une image de taille identique.
- 13 feb. 2005 V1.6 - correction avec un seul paramètre de chargement
- 24 apr. 2005 V1.7 - affiche les paramètres IPTC avec la grande image
- 16 may 2005 V1.8 - correction htmlentities sur le texte IPTC affiché (car. accentués)
- 31 oct 2005 V1.9 - Peut désormais charger les images ayant un nom accentuée avec IE - Le chargement indirect avec
$EnableDirectDownload
=0 est possible.
Contributeur
Discussion
Ce cookbook fonctionne vraiment bien. J'aimerais pouvoir changer la fonction finale de lien:
Au lieu D'AFFICHER l'image.p (action=dispimg&im=image.p.jpg
), peut-on créer à la place UN LIEN VERS UNE NOUVELLE PAGE (avec le nom de l'image et sans l'extension, exemple: image001?), avec son beau point d'interrogation bleu... ?
On pourrait ainsi constituer, à partir de là, une série de pages directement à partir d'une page-bibliothèque d'uploads. Ce serait ensuite très facile de créer des catégories, d'ajouter et de constituer des includes, des trails, des commentaires, etc. Ce serait la base pour une galerie complètement wiki.
(On peut faire ça manuellement, mais c'est long...)
edouard
Il existe sur pmWiki des galleries fonctionnant sur ce principe. Mon but n'a jamais été de remplacer un module de gallerie, ce qui necessiterait des modifications importantes. Tous les modules de galleries de pmWiki 1 (il y en avait de bons) n'ont pas été portés sur pmWiki2 et bien qu'il y ait du choix sur pmWiki 2, il n'est pas trop facile de s'y retrouver. PRZ?
Une liste des images uploadées avec leur vignettes Y a-t-il un moyen d'obtenir dans une page:
- la liste de toutes les images uploadées du groupe
- avec leurs vignettes?
<< Feuilles de données vers PmWiki | Index compléments | Table des matières >>
Traduction de Cookbook:ImagesAutoResizing - Page originale sur PmWiki:PmWikiFr.CréationAutomatiqueDeVignettes
Page originale sur PmWikiFr.CreationAutomatiqueDeVignettes - Référencé par
Dernières modifications:
PmWikiFr.CreationAutomatiqueDeVignettes: 10 septembre 2011 à 17h40