Projet

Général

Profil

Bug #73872

Réorientation d'une image suite à la ŕeduction automatique de la taille

Ajouté par Emmanuel Cazenave il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 janvier 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Une fiche avec un champ fichier sur lequel "Réduire automatiquement la taille des images" est coché.

Ci-dessous le fichier original et le fichier réduit, on y observe une rotation de 90 degrés.


Demandes liées

Lié à w.c.s. - Development #75178: Retirer l'application d'ExifRestorer lors du redimensionnement d'une image jpegRejeté06 mars 2023

Actions

Révisions associées

Révision b84da1a8 (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

misc: undo file orientation when resizing images (#73872)

Historique

#2

Mis à jour par Frédéric Péters il y a environ un an

Les données EXIF sont bien conservées lors de la réduction de taille mais comme lors de celle-ci on part de l'affichage par le navigateur qui applique la rotation (mais tous les navigateurs font ça ?) on se trouve à l'affichage de la version réduite avec la rotation appliquée une seconde fois :/

#3

Mis à jour par Mikaël Ates il y a environ un an

  • Fichier 20220121_110058-resized.jpg supprimé
#4

Mis à jour par Mikaël Ates il y a environ un an

  • Fichier 20220121_110058.jpg supprimé
#9

Mis à jour par Benjamin Dauvergne il y a environ un an

Frédéric Péters a écrit :

(mais tous les navigateurs font ça ?)

Je dirai que oui : https://developer.mozilla.org/fr/docs/Web/CSS/image-orientation

On peut peut-être jouer avec cette propriété image-orientation pendant le drawImage.

#10

Mis à jour par Frédéric Péters il y a environ un an

  • Assigné à mis à Frédéric Péters

Top je n'avais pas vu l'existence de cette propriété; il y aurait donc à tester quelque chose approchant :

@@ -254,6 +254,7 @@ $.WcsFileUpload = {
                     reader.onload = function(e) {
                         var original_image_64 = e.target.result;
                         var img = document.createElement("img");
+                        img.style.imageOrientation = "none";

(je m'assigne le ticket pour tester, si jamais ça ne marche pas je me retirerai)

#11

Mis à jour par Frédéric Péters il y a environ un an

  • Assigné à Frédéric Péters supprimé

Nope.

#12

Mis à jour par Benjamin Dauvergne il y a environ un an

Il faut peut-être que le DOM ait le temps de réagir au changement de style (ou alors ça n'a d'effet qu'au chargement de celle-ci et il faudrait recréer un tag img sans l'accrocher au document).

#15

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Assigné à mis à Benjamin Dauvergne
#17

Mis à jour par Benjamin Dauvergne il y a environ un an

Sur chrome (et donc Edge aussi) et firefox l'orientation est automatiquement conservée par convas.drawImage(), drawImage ignore la CSS. Si on en croit caniuse.org on supporterait 93% des navigateurs en utilisant juste drawImage().

Dans le ticket qui introduire ExifRestorer #23152 je lis

ExifRestorer.restore_as_blob pour à la fois :
- garder les métadonnées EXIF
- améliorer la qualité de l'image tronquée (interpolation linéaire)

Je ne sais pas si ce deuxième point est vraiment important, si ça ne l'est pas alors je propose de simplement enlever ExifRestorer qui pour l'orientation se comporte mal dans quasiment 100% des cas désormais.

#18

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Lié à Development #75178: Retirer l'application d'ExifRestorer lors du redimensionnement d'une image jpeg ajouté
#19

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Statut changé de Nouveau à En cours
#20

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#21

Mis à jour par Benjamin Dauvergne il y a environ un an

J'ai testé sur la même image en y appliquant toutes les orientations1 et en comparant la sortie sur la page de validation et avec eog, c'est tout bon.

1

bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient topright truc-2-mirror-horizontal.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient bottomright truc-3-rotate-180.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient bottomleft truc-4-mirror-vertical.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient lefttop truc-5-mirror-horizontal-and-rotate-270.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient righttop truc-6-rotate-90.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient rightbottom truc-7-mirror-horizontal-and-rotate-90.jpeg
bdauvergne@revestel:~$ convert-im6 ~/Téléchargements/test-image-orientation/truc.jpg -orient leftbottom truc-8-rotate-270.jpeg

#22

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution proposée à Solution validée

Corentin Sechet (csechet) a approuvé une pull request sur Gitea concernant cette demande :

#23

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#24

Mis à jour par Transition automatique il y a environ un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#25

Mis à jour par Transition automatique il y a 10 mois

Automatic expiration

Formats disponibles : Atom PDF