Skip to content

Commit 888efed

Browse files
committed
Discard the EXIF Orientation if the image was rotated
1 parent d8faa7a commit 888efed

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

wcfsetup/install/files/lib/data/file/FileEditor.class.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,14 @@ public static function createFromTemporary(FileTemporary $fileTemporary): File
7474
[$width, $height] = \getimagesize($pathname);
7575
}
7676

77+
$exifData = $fileTemporary->exifData;
78+
if ($exifData !== null) {
79+
$exifData = JSON::decode($exifData);
80+
}
81+
7782
$fileSize = $fileTemporary->fileSize;
7883
$fileHash = $fileTemporary->fileHash;
7984
if ($isImage) {
80-
$exifData = $fileTemporary->exifData;
81-
if ($exifData !== null) {
82-
$exifData = JSON::decode($exifData);
83-
}
84-
8585
$imageWasModified = false;
8686
try {
8787
$imageWasModified = self::normalizeImageRotation(
@@ -91,6 +91,10 @@ public static function createFromTemporary(FileTemporary $fileTemporary): File
9191
$mimeType,
9292
$exifData,
9393
);
94+
95+
if ($imageWasModified && $exifData !== null) {
96+
unset($exifData['IFD0']['Orientation']);
97+
}
9498
} catch (\Throwable) {
9599
}
96100

@@ -111,7 +115,7 @@ public static function createFromTemporary(FileTemporary $fileTemporary): File
111115
'width' => $width,
112116
'height' => $height,
113117
'uploadTime' => \TIME_NOW,
114-
'exifData' => $fileTemporary->exifData,
118+
'exifData' => $exifData !== null ? JSON::encode($exifData) : null,
115119
]]);
116120
$file = $fileAction->executeAction()['returnValues'];
117121
\assert($file instanceof File);
@@ -194,6 +198,10 @@ public static function createFromExistingFile(
194198
$mimeType,
195199
$exifData,
196200
);
201+
202+
if ($imageWasModified && $exifData !== null) {
203+
unset($exifData['IFD0']['Orientation']);
204+
}
197205
} catch (\Throwable) {
198206
}
199207

@@ -212,7 +220,7 @@ public static function createFromExistingFile(
212220
'width' => $width,
213221
'height' => $height,
214222
'uploadTime' => $uploadTime,
215-
'exifData' => JSON::encode($exifData),
223+
'exifData' => $exifData !== null ? JSON::encode($exifData) : null,
216224
]]);
217225
$file = $fileAction->executeAction()['returnValues'];
218226
\assert($file instanceof File);

0 commit comments

Comments
 (0)