crop sur images

Extensions jpg, jpeg, png, gif

prévisualisation max :

Aucun fichié sélectionné
La prévisualisation des images est limitée à 20 Mo par image et 100 Mo au total. Vous pouvez changer ou supprimer ces limitations avec les options de configuration "Up.config.imgPreviewMaxSizeTotal" et "Up.config.imgPreviewMaxSize" (cf code source de ce fichier).

Le crop est réalisé avec le module Jquery "imAareaSelect". Un mode d'emploi est fourni dans le dossier "javascript". Dans ce mode d'emploi, j'ai remplacé l'option "fadeSpeed" par "fadeDuration" car le code de la dernière version 1.0.0-rc.1 utilise "fadeDuration" mais la doc sur le web n'a pas été mise à jour.

Concernant le code javascript, on utilise les fonctions événementielles de la classe d'upload ajax pour initialiser le script du Crop. Il faut utiliser console.log() et parcourir les objets javascript retournés en paramètre par ces fonctions pour comprendre les propriétés utilisées. Voir le mode d'emploi, paragraphe : Contenu des tableaux de fichiers passés en paramètre dans les fonctions événementielles.

Côté php, le script "UploadAjaxABCI_Php_Load_Crop_multiple.php" permet en option de faire un redimensionnement proportionnel pour limiter la taille de l'image avec ou sans crop préalablement effectué.

Lorsque la mémoire est insuffisante pour effectuer le crop côté serveur, un message approprié sera affiché en retour par la fonction "cathErrorServeur()" (dans le fichier "UploadAjaxABCI_Php_Load_Crop_multiple.php"). La configuration actuelle de cette fonction préserve la sauvegarde des fichiers*. A défaut de pouvoir retoucher l'image cela permet néanmoins de la télécharger sans avoir à attendre une nouvelle fois pour son chargement lors d'une prochaine sélection.
A noter que dans des cas limites une image pourra être cropée si l'on sélectionne une petite zone mais pas une grande (l'image peut être ouverte "de justesse" mais le serveur ne dispose plus suffisamment de mémoire disponible pour terminer le processus).

Notes :
- * La méthode "saveAll()" utilisée côté php permet par ailleurs d'effectuer une sauvegarde pour tous les fichiers tant qu'ils n'ont pas été traités.
- Pour supprimer l'upload multiple il suffit de supprimer la propirété multiple="multiple" dans le champ input de type file.
- Le code javascript est difficile pour les débutants. Néanmoins il est conçu de manière générique de sorte qu'il n'a pas besoin d'être modifié tant que vous supprimez des éléments HTML qui vous sont inutiles : champ "légende", boutons radios, tableau d'informations de crop, liens "arrêt", "arrêter tout", etc. Dans l'absolu seul le champ de prévisualisation des vignettes est nécessaire pour faire le crop et permettre un traitement correct côté php, néanmoins je vous conseille de garder au minimum l'information de status du fichier (ainsi que les blocs retournant les erreurs de dépassement du poids des images pour prévisualisation si vous conservez ces limitations).
Cependant si vous modifier le nom des classes ou des champs dans le html il faudra en faire de même dans la configuration des variables définies au début du code javascript. Suppression du html possible "sans précaution", mais modification avec précautions.

Index