diff --git a/framework/core/src/Core/Command/RegisterUserHandler.php b/framework/core/src/Core/Command/RegisterUserHandler.php index 9d7a120c1..c7daf38fa 100644 --- a/framework/core/src/Core/Command/RegisterUserHandler.php +++ b/framework/core/src/Core/Command/RegisterUserHandler.php @@ -173,7 +173,7 @@ class RegisterUserHandler 'target' => $this->uploadDir, ]); - $uploadName = Str::lower(Str::quickRandom()).'.jpg'; + $uploadName = Str::lower(Str::quickRandom()).'.png'; $user->changeAvatarPath($uploadName); diff --git a/framework/core/src/Core/Command/UploadAvatarHandler.php b/framework/core/src/Core/Command/UploadAvatarHandler.php index e0fed57d1..de451a074 100644 --- a/framework/core/src/Core/Command/UploadAvatarHandler.php +++ b/framework/core/src/Core/Command/UploadAvatarHandler.php @@ -100,8 +100,13 @@ class UploadAvatarHandler $manager = new ImageManager; - // Explicitly tell Intervention to encode the image as JSON (instead of having to guess from the extension) - $encodedImage = $manager->make($tmpFile)->orientate()->fit(100, 100)->encode('jpg', 100); + // Explicitly tell Intervention to encode the image as PNG (instead of having to guess from the extension) + // Read exif data to orientate avatar only if EXIF extension is enabled + if (extension_loaded('exif')) { + $encodedImage = $manager->make($tmpFile)->orientate()->fit(100, 100)->encode('png', 100); + } else { + $encodedImage = $manager->make($tmpFile)->fit(100, 100)->encode('png', 100); + } file_put_contents($tmpFile, $encodedImage); $this->events->fire( @@ -117,7 +122,7 @@ class UploadAvatarHandler $mount->delete($file); } - $uploadName = Str::lower(Str::quickRandom()).'.jpg'; + $uploadName = Str::lower(Str::quickRandom()).'.png'; $user->changeAvatarPath($uploadName);