Hello,
Pour des besoins personnels (et surtout par flemme de réuploader beaucoup de fichiers, j'avoue), j'ai créé un petit plugin qui permet de pivoter par lot des images de galeries : rotateImage.
Il ajoute une entrée dans la gestion par lot, et est compatible avec les gros traitements, à la manière de la génération de miniatures, introduit dans piwigo 2.3.0.
N'hésitez pas à faire vos feedbacks dessus :)
(attention: première version, des bugs résiduels peuvent subsister, à éviter en production :)
URL du plugin : [extension by Dsls] rotateImage
--
Bruno
Hors ligne
Salut
C'est à peu près ce que j'avais fait pour le plugin que j'ai fait vite fait cet été pour les même raisons que toi (et que je n'avais toujours pas publié). Par contre, tout comme moi, tu tournes aussi la HD, ce qui n'est pas vraiment recommandé, surtout si la seule bibliothèque graphique disponible est GD.
Pour éviter le problème du cache du navigateur, il suffit de rajouter un préfiltre pour coller à l'url des thumbnails un paramètre aléatoire (genre ?rand=xxxx). C'est ce que j'avais fait pour regenerateThumbnails.
PS: si tu me le permet, je ferai les modifications adéquates...
Hors ligne
P@t a écrit:
Salut
C'est à peu près ce que j'avais fait pour le plugin que j'ai fait vite fait cet été pour les même raisons que toi (et que je n'avais toujours pas publié).
Content de voir que nos avis convergent :)
Par contre, tout comme moi, tu tournes aussi la HD, ce qui n'est pas vraiment recommandé, surtout si la seule bibliothèque graphique disponible est GD.
Yep, a la limite ça devrait pouvoir se mettre en paramètre du plugin (et à désactiver par défaut).
Pour éviter le problème du cache du navigateur, il suffit de rajouter un préfiltre pour coller à l'url des thumbnails un paramètre aléatoire (genre ?rand=xxxx). C'est ce que j'avais fait pour regenerateThumbnails.
Je vais regarder ça de plus près. Si tu veux faire d'autres modifs, n'hésite surtout pas :)
Hors ligne
Merci pour l'option sur la HD. Je propose une changement pour le paramétrage par défaut : si GD, alors impossible de pivoter la HD l'option n'est même pas montrée; sinon on -//:---\spam l'option et elle est cochée par défaut.
Pour rappel : si la HD est transformée par GD, alors on perd toutes les métadonnées EXIF/IPTC... c'est un vrai soucis qui m'a contraint à masquer les options de redimensionnement/suppression de la HD en cas d'absence d'ImageMagick.
Hors ligne
Bonjour Dsls,
J'ai testé plus en profondeur et le rotate de la HD ne fonctionne pas. Voici un patch (testé) :
Index: ws_functions.inc.php =================================================================== --- ws_functions.inc.php (revision 13313) +++ ws_functions.inc.php (working copy) @@ -35,7 +35,7 @@ include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php'); $image_id=(int)$params['image_id']; $angle=(int)$params['angle']; - $rotate_hd = (int) $params['rotate_hd']; + $rotate_hd = get_boolean($params['rotate_hd']); $query=' SELECT id, path, tn_ext, has_high FROM '.IMAGES_TABLE.' Index: rotate_image.tpl =================================================================== --- rotate_image.tpl (revision 13313) +++ rotate_image.tpl (working copy) @@ -10,6 +10,7 @@ else if (jQuery('[name="selectAction"]').val() == 'rotateImg') { angle = jQuery('select[name="rotate_angle"]').val(); + rotate_hd = jQuery("#rotate_hd").is(':checked'); e.stopPropagation(); } else @@ -54,6 +55,7 @@ method: "pwg.image.rotate", format: 'json', angle: angle, + rotate_hd: rotate_hd, pwg_token: ri_pwg_token, image_id: elements[i] }, @@ -82,7 +84,7 @@ {if $library != 'gd'} <tr> <th><label for="rotate_hd">{'Also rotate HD image'|@translate}</label></th> - <td><input type="checkbox" name="rotate_hd" id="rotate_hd" {if $upload_form_settings.thumb_crop}checked="checked"{/if}></td> + <td><input type="checkbox" name="rotate_hd" id="rotate_hd" checked="checked"></td> </tr> {/if} </table>
D'autre part (et dans la logique de l'arrivée 2.4), il serait intéressant de pouvoir ne tourner que la HD (et de regénérer les tailles plus petites). Et d'ajouter l'angle "utiliser l'orientation EXIF".
Je peux appliquer le patch si tu veux et faire cette petite évolution.
Hors ligne
plg a écrit:
D'autre part (et dans la logique de l'arrivée 2.4), il serait intéressant de pouvoir ne tourner que la HD (et de regénérer les tailles plus petites). Et d'ajouter l'angle "utiliser l'orientation EXIF".
Je peux appliquer le patch si tu veux et faire cette petite évolution.
Pas de souci, je te laisse faire :)
(je suis carrément sous l'eau de mon coté, si je le prends à ma charge ça risque de prendre du temps avant de voir le jour :)
Hors ligne
OK parfait, je viens de commiter ce patch là [Subversion] r13314 et je vais essayer d'ajouter d'autres petits trucs :
1) la prise en compte du taux de compression JPEG
2) le "use EXIF rotation" pour l'angle
3) plutôt que de tourner chaque taille, on regénère les tailles inférieures à partir de la HD
4) mettre à jour le tag d'orientation EXIF
Hors ligne
plg a écrit:
4) mettre à jour le tag d'orientation EXIF
C'est déjà fait dans le core ça en fait :
function rotate($rotation) { $this->image->rotateImage(new ImagickPixel(), -$rotation); $this->image->setImageOrientation(Imagick::ORIENTATION_TOPLEFT); return true; }
Hors ligne
Voilà, version 0.5 avec tout ce que j'ai décrit plus haut :
bug corrigé : l'option de rotation de la HD n'était jamais appliquée
utilisation du paramètre de qualité de compression
seule la plus grande taille est tournée, les autres sont regénérées
nouvelle option pour calculer automatiquement l'angle de rotation à partir des informations EXIF
Hors ligne
Bonjour,
Comment se fait-il que ce plugin n'est plus compatible en version 2.4?