Project

General

Profile

Bug #73872

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

Added by Emmanuel Cazenave (retour le 15/04) about 1 year ago. Updated about 1 year ago.

Status:
Fermé
Priority:
Normal
Target version:
-
Start date:
26 January 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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.


Related issues

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

Actions

Associated revisions

Revision b84da1a8 (diff)
Added by Benjamin Dauvergne about 1 year ago

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

History

#2

Updated by Frédéric Péters about 1 year ago

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

Updated by Mikaël Ates about 1 year ago

  • File deleted (20220121_110058-resized.jpg)
#4

Updated by Mikaël Ates about 1 year ago

  • File deleted (20220121_110058.jpg)
#9

Updated by Benjamin Dauvergne about 1 year ago

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

Updated by Frédéric Péters about 1 year ago

  • Assignee set to 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

Updated by Frédéric Péters about 1 year ago

  • Assignee deleted (Frédéric Péters)

Nope.

#12

Updated by Benjamin Dauvergne about 1 year ago

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

Updated by Benjamin Dauvergne about 1 year ago

  • Assignee set to Benjamin Dauvergne
#17

Updated by Benjamin Dauvergne about 1 year ago

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

Updated by Benjamin Dauvergne about 1 year ago

  • Related to Development #75178: Retirer l'application d'ExifRestorer lors du redimensionnement d'une image jpeg added
#19

Updated by Benjamin Dauvergne about 1 year ago

  • Status changed from Nouveau to En cours
#20

Updated by Robot Gitea about 1 year ago

  • Status changed from En cours to Solution proposée

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

#21

Updated by Benjamin Dauvergne about 1 year ago

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

Updated by Robot Gitea about 1 year ago

  • Status changed from Solution proposée to Solution validée

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

#23

Updated by Robot Gitea about 1 year ago

  • Status changed from Solution validée to Résolu (à déployer)

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

#24

Updated by Transition automatique about 1 year ago

  • Status changed from Résolu (à déployer) to Solution déployée
#25

Updated by Transition automatique 11 months ago

Automatic expiration

Also available in: Atom PDF