From 2b03a4c2a295aa1f8677e674defb0c1a9c483d3e Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Mon, 8 Jan 2024 10:37:18 +0100 Subject: [PATCH 1/2] Add alias FontFactory::file() --- src/Typography/FontFactory.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Typography/FontFactory.php b/src/Typography/FontFactory.php index 8e942713..d23cd613 100644 --- a/src/Typography/FontFactory.php +++ b/src/Typography/FontFactory.php @@ -29,6 +29,11 @@ class FontFactory return $this; } + public function file(string $value): self + { + return $this->filename($value); + } + public function color(mixed $value): self { $this->font->setColor($value); From 72680e81388bba766cef9db42943ff7d152a6d84 Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Mon, 8 Jan 2024 10:53:13 +0100 Subject: [PATCH 2/2] Fix image auto orientation --- .../Gd/Decoders/BinaryImageDecoder.php | 8 +++--- .../Imagick/Decoders/BinaryImageDecoder.php | 27 ++++++++++++++++--- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/Drivers/Gd/Decoders/BinaryImageDecoder.php b/src/Drivers/Gd/Decoders/BinaryImageDecoder.php index 797b8b19..d8f3f846 100644 --- a/src/Drivers/Gd/Decoders/BinaryImageDecoder.php +++ b/src/Drivers/Gd/Decoders/BinaryImageDecoder.php @@ -61,12 +61,12 @@ class BinaryImageDecoder extends AbstractDecoder implements DecoderInterface // fix image orientation return match ($image->exif('IFD0.Orientation')) { - 2 => $image->flip(), + 2 => $image->flop(), 3 => $image->rotate(180), - 4 => $image->rotate(180)->flip(), - 5 => $image->rotate(270)->flip(), + 4 => $image->rotate(180)->flop(), + 5 => $image->rotate(270)->flop(), 6 => $image->rotate(270), - 7 => $image->rotate(90)->flip(), + 7 => $image->rotate(90)->flop(), 8 => $image->rotate(90), default => $image }; diff --git a/src/Drivers/Imagick/Decoders/BinaryImageDecoder.php b/src/Drivers/Imagick/Decoders/BinaryImageDecoder.php index 111c7737..e5db1418 100644 --- a/src/Drivers/Imagick/Decoders/BinaryImageDecoder.php +++ b/src/Drivers/Imagick/Decoders/BinaryImageDecoder.php @@ -33,15 +33,34 @@ class BinaryImageDecoder extends AbstractDecoder implements DecoderInterface // fix image orientation switch ($imagick->getImageOrientation()) { - case Imagick::ORIENTATION_BOTTOMRIGHT: + case Imagick::ORIENTATION_TOPRIGHT: // 2 + $imagick->flopImage(); + break; + + case Imagick::ORIENTATION_BOTTOMRIGHT: // 3 $imagick->rotateimage("#000", 180); break; - case Imagick::ORIENTATION_RIGHTTOP: - $imagick->rotateimage("#000", 90); + case Imagick::ORIENTATION_BOTTOMLEFT: // 4 + $imagick->rotateimage("#000", 180); + $imagick->flopImage(); break; - case Imagick::ORIENTATION_LEFTBOTTOM: + case Imagick::ORIENTATION_LEFTTOP: // 5 + $imagick->rotateimage("#000", -270); + $imagick->flopImage(); + break; + + case Imagick::ORIENTATION_RIGHTTOP: // 6 + $imagick->rotateimage("#000", -270); + break; + + case Imagick::ORIENTATION_RIGHTBOTTOM: // 7 + $imagick->rotateimage("#000", -90); + $imagick->flopImage(); + break; + + case Imagick::ORIENTATION_LEFTBOTTOM: // 8 $imagick->rotateimage("#000", -90); break; }