Forum CMS Made Simple FR

Version complète : [résolu] redimensionnement auto des images
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

jack66

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonsoir,

existe t-il un module (côté administration) qui permette d'uploader une image en la redimensionnant automatiquement ?

Ex.: je veux uploader une image qui fait 1024px de large et le serveur me la transforme directement en 800px. Sans aucune manip supplémentaire, tout se faisant lors de l'upload.

CGExtensions doit permettre de le faire mais je n'ai pas bien compris comment faire appel à ce module.

merci.
Oui, télécharge le module CGSmartImages (dépendance : CGExtension).
Regarde l'aide du module pour l'utilisation dans tes gabarits.
Si tu ne piges pas, repasse-nous dire bonjour Wink

jack66

Je les ai déjà téléchargés tous les deux.
Mais je n'arrive pas à comprendre comment l'intégrer.

Ce que je voudrais arriver à avoir :
un utilisateur se connecte (côté administrateur) et veut uploader une image. Aucune manipulation de sa part ne doit être nécessaire pour redimensionner l'image. Une fois uploadée l'image est automatiquement transformée en 800x600 et tant qu'à faire une vignette en 200x150 est également générée.
Le tout de manière simple un peu comme dans FaceBook et cie.
Ce n'est pas la manière dont l'upload se fait qui est important, c'est la manière dont l'image est affichée sur le frontend qui importe pour le poids de la page.
Donc, l'appel au module se fait dans le gabarit (page, news, nms...).
Fait une recherche sur CGSmartImage sur ce forum, tu verras des exemples de code.
Si ton problème est de minimiser l'espace serveur, tu n'as qu'a créer une UDT dans un formulaire d'upload. Tu trouveras des scripts php partout sur le web.
je rejoins Jean le Chauve dans son idée et pousserais même plus loin la logique.

Que crois tu que fais Facebook avec nos photos ?

J'upload une image 1250*1250
il la retaille en 32*32,42*42,600*600,800*800 pour ses besoins et supprime l'original pour gagner de la place

et si demain il a besoin d'un nouveau format il fait comment ?


Le redimensionnement des images doit se faire à la volée. cad si j'ai besoin d'une image au format 32*32, je regarde si dans mon cache, une image au format 32*32 existe, si "pas encore" je vais la générer à partir de l'original. Ensuite de toute façon je renvois l'image 32*32

Ainsi tu n'as pas à te soucier de quel format ton site aura besoin les 15 prochaines années.

Exemple de code issu de l'aide de CGSmartImage (nécessite les lib Jquery + fancybox dans ton gabarit hein !)

(oublie pas de placer quelques images jpg dans le répertoire /uoloads/album pour le test

Code :
[== Indéfini ==]
<script type="text/javascript">{literal}
  jQuery(document).ready(function(){
   jQuery('a.fancybox').fancybox();
  });
{/literal}</script>
{assign var='files' value='uploads/album/*.jpg'|glob}
{if count($files)}
<div style="width: 100%; height: 150px; overflow: auto;">
{foreach from=$files item='file'}
  <a rel='simple_album' class="fancybox" href="{CGSmartImage src=$file filter_rotate=90,0 filter_watermark=1 filter_resize='h,500' notag=1 noembed=1}">
  {CGSmartImage src=$file filter_rotate=90,0 filter_grayscale=1 filter_watermark=1 filter_resize='h,150'}
  </a>
{/foreach}
</div>
{/if}

déjà test ce code tel quel et constate si ca marche

ensuite tu lis l'aide du module pour comprendre les paramètres de ces 2 lignes de commande (ici $file contiendra le nom du fichier dans la boucle évidement)

{CGSmartImage src=$file filter_rotate=90,0 filter_watermark=1 filter_resize='h,500' notag=1 noembed=1}
{CGSmartImage src=$file filter_rotate=90,0 filter_grayscale=1 filter_watermark=1 filter_resize='h,150'}

jack66

ok, effectivement je commence à comprendre. Je n'avais pas du tout vu le problème sous cet angle.
Je teste et je vous tiens au jus.

merci,
a+

jack66

Finalement, le module gallery le fait très bien. Je ne vais pas ré-inventer la roue.
merci, a++