From 59f639a5a43a7fccbde1550a7c51e5ec40d7408c Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Mon, 9 Sep 2024 17:34:42 +0200 Subject: [PATCH] Refactored WMF Reader --- src/WMF/Reader/ReaderInterface.php | 4 +- src/WMF/Reader/{ => WMF}/GD.php | 68 ++++++++++++--------- src/WMF/Reader/{ => WMF}/Imagick.php | 18 +++++- src/WMF/Reader/{ => WMF}/Magic.php | 9 ++- src/WMF/Reader/WMF/ReaderInterface.php | 10 +++ tests/WMF/Reader/AbstractTestReader.php | 14 ++++- tests/WMF/Reader/{ => WMF}/GDTest.php | 25 ++++++-- tests/WMF/Reader/{ => WMF}/ImagickTest.php | 25 ++++++-- tests/WMF/Reader/{ => WMF}/MagicTest.php | 13 ++-- tests/resources/test_libuemf.png | Bin 0 -> 44646 bytes tests/resources/test_libuemf.wmf | Bin 0 -> 33474 bytes 11 files changed, 131 insertions(+), 55 deletions(-) rename src/WMF/Reader/{ => WMF}/GD.php (93%) rename src/WMF/Reader/{ => WMF}/Imagick.php (72%) rename src/WMF/Reader/{ => WMF}/Magic.php (84%) create mode 100644 src/WMF/Reader/WMF/ReaderInterface.php rename tests/WMF/Reader/{ => WMF}/GDTest.php (69%) rename tests/WMF/Reader/{ => WMF}/ImagickTest.php (66%) rename tests/WMF/Reader/{ => WMF}/MagicTest.php (80%) create mode 100644 tests/resources/test_libuemf.png create mode 100644 tests/resources/test_libuemf.wmf diff --git a/src/WMF/Reader/ReaderInterface.php b/src/WMF/Reader/ReaderInterface.php index ee057c7..3c07bfd 100644 --- a/src/WMF/Reader/ReaderInterface.php +++ b/src/WMF/Reader/ReaderInterface.php @@ -7,12 +7,12 @@ interface ReaderInterface { - public function isWMF(string $filename): bool; - public function load(string $filename): bool; public function save(string $filename, string $format): bool; + public function getMediaType(): string; + /** * @phpstan-ignore-next-line * diff --git a/src/WMF/Reader/GD.php b/src/WMF/Reader/WMF/GD.php similarity index 93% rename from src/WMF/Reader/GD.php rename to src/WMF/Reader/WMF/GD.php index 82af6af..65d65f2 100644 --- a/src/WMF/Reader/GD.php +++ b/src/WMF/Reader/WMF/GD.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace PhpOffice\WMF\Reader; +namespace PhpOffice\WMF\Reader\WMF; use GdImage; use PhpOffice\WMF\Exception\WMFException; @@ -72,6 +72,9 @@ public function isWMF(string $filename): bool return $key == (int) 0x9AC6CDD7; } + /** + * @see https://github.com/affinitybridge/mpdf/blob/master/src/Image/Wmf.php + */ public function load(string $filename): bool { $this->content = file_get_contents($filename); @@ -252,13 +255,31 @@ public function load(string $filename): bool } break; default: - // throw new WMFException('Reader : Function not implemented : 0x' . str_pad(dechex($recordType), 4, '0', STR_PAD_LEFT)); + throw new WMFException('Reader : Function not implemented : 0x' . str_pad(dechex($recordType), 4, '0', STR_PAD_LEFT)); } } return true; } + protected function readHeader(): void + { + list(, $key) = unpack('L', substr($this->content, 0, 4)); + list(, $handle) = unpack('S', substr($this->content, 4, 2)); + list(, $left) = unpack('S', substr($this->content, 6, 2)); + list(, $top) = unpack('S', substr($this->content, 8, 2)); + list(, $right) = unpack('S', substr($this->content, 10, 2)); + list(, $bottom) = unpack('S', substr($this->content, 12, 2)); + list(, $this->unitPerInch) = unpack('S', substr($this->content, 14, 2)); + list(, $reserved) = unpack('L', substr($this->content, 16, 4)); + list(, $checksum) = unpack('S', substr($this->content, 18, 2)); + + $this->pos = 18; + if ($key == (int) 0x9AC6CDD7) { + $this->pos += 22; + } + } + /** * @return array */ @@ -280,19 +301,21 @@ protected function resetCoordinates(int $x, int $y): array /** * @param array $gdiObject */ - protected function addGDIObject(array $gdiObject): void + protected function addGDIObject(array $gdiObject, ?int $idx = null): void { - // Find next available slot - $idx = 0; - - if (!empty($this->gdiObjects)) { - $empty = false; - $i = 0; - while (!$empty) { - $empty = !isset($this->gdiObjects[$i]); - ++$i; + if (!$idx) { + // Find next available slot + $idx = 0; + + if (!empty($this->gdiObjects)) { + $empty = false; + $i = 0; + while (!$empty) { + $empty = !isset($this->gdiObjects[$i]); + ++$i; + } + $idx = $i - 1; } - $idx = $i - 1; } $this->gdiObjects[$idx] = $gdiObject; @@ -301,7 +324,7 @@ protected function addGDIObject(array $gdiObject): void /** * @phpstan-ignore-next-line * - * @return GDImage|resource + * @return GdImage|resource */ public function getResource() { @@ -337,21 +360,8 @@ public function save(string $filename, string $format): bool } } - protected function readHeader(): void + public function getMediaType(): string { - list(, $key) = unpack('L', substr($this->content, 0, 4)); - list(, $handle) = unpack('S', substr($this->content, 4, 2)); - list(, $left) = unpack('S', substr($this->content, 6, 2)); - list(, $top) = unpack('S', substr($this->content, 8, 2)); - list(, $right) = unpack('S', substr($this->content, 10, 2)); - list(, $bottom) = unpack('S', substr($this->content, 12, 2)); - list(, $this->unitPerInch) = unpack('S', substr($this->content, 14, 2)); - list(, $reserved) = unpack('L', substr($this->content, 16, 4)); - list(, $checksum) = unpack('S', substr($this->content, 18, 2)); - - $this->pos = 18; - if ($key == (int) 0x9AC6CDD7) { - $this->pos += 22; - } + return 'image/wmf'; } } diff --git a/src/WMF/Reader/Imagick.php b/src/WMF/Reader/WMF/Imagick.php similarity index 72% rename from src/WMF/Reader/Imagick.php rename to src/WMF/Reader/WMF/Imagick.php index 34200d0..aa8969b 100644 --- a/src/WMF/Reader/Imagick.php +++ b/src/WMF/Reader/WMF/Imagick.php @@ -2,9 +2,10 @@ declare(strict_types=1); -namespace PhpOffice\WMF\Reader; +namespace PhpOffice\WMF\Reader\WMF; use Imagick as ImagickBase; +use ImagickException; use PhpOffice\WMF\Exception\WMFException; class Imagick implements ReaderInterface @@ -16,9 +17,15 @@ class Imagick implements ReaderInterface public function load(string $filename): bool { - $this->im = new ImagickBase(); + try { + $this->im = new ImagickBase(); - return $this->im->readImage($filename); + return $this->im->readImage($filename); + } catch (ImagickException $e) { + $this->im->clear(); + + throw new WMFException('Cannot load WMG File from Imagick'); + } } public function isWMF(string $filename): bool @@ -34,6 +41,11 @@ public function getResource(): ImagickBase return $this->im; } + public function getMediaType(): string + { + return 'image/wmf'; + } + public function save(string $filename, string $format): bool { switch (strtolower($format)) { diff --git a/src/WMF/Reader/Magic.php b/src/WMF/Reader/WMF/Magic.php similarity index 84% rename from src/WMF/Reader/Magic.php rename to src/WMF/Reader/WMF/Magic.php index ca83a6b..a33dc42 100644 --- a/src/WMF/Reader/Magic.php +++ b/src/WMF/Reader/WMF/Magic.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace PhpOffice\WMF\Reader; +namespace PhpOffice\WMF\Reader\WMF; use GDImage; use Imagick as ImagickBase; -use PhpOffice\WMF\Reader\Imagick as ImagickReader; +use PhpOffice\WMF\Reader\WMF\Imagick as ImagickReader; class Magic implements ReaderInterface { @@ -37,6 +37,11 @@ public function save(string $filename, string $format): bool return $this->reader->save($filename, $format); } + public function getMediaType(): string + { + return $this->reader->getMediaType(); + } + public function isWMF(string $filename): bool { return $this->reader->isWMF($filename); diff --git a/src/WMF/Reader/WMF/ReaderInterface.php b/src/WMF/Reader/WMF/ReaderInterface.php new file mode 100644 index 0000000..84ace5f --- /dev/null +++ b/src/WMF/Reader/WMF/ReaderInterface.php @@ -0,0 +1,10 @@ +> */ - public static function dataProviderFiles(): array + public static function dataProviderFilesWMF(): array { return [ [ @@ -43,4 +43,16 @@ public static function dataProviderFiles(): array ], ]; } + + /** + * @return array> + */ + public static function dataProviderFilesWMFNotImplemented(): array + { + return [ + [ + 'test_libuemf.wmf', + ], + ]; + } } diff --git a/tests/WMF/Reader/GDTest.php b/tests/WMF/Reader/WMF/GDTest.php similarity index 69% rename from tests/WMF/Reader/GDTest.php rename to tests/WMF/Reader/WMF/GDTest.php index 759cb1b..a29536b 100644 --- a/tests/WMF/Reader/GDTest.php +++ b/tests/WMF/Reader/WMF/GDTest.php @@ -2,15 +2,17 @@ declare(strict_types=1); -namespace Tests\PhpOffice\WMF\Reader; +namespace Tests\PhpOffice\WMF\Reader\WMF; use GdImage; -use PhpOffice\WMF\Reader\GD; +use PhpOffice\WMF\Exception\WMFException; +use PhpOffice\WMF\Reader\WMF\GD; +use Tests\PhpOffice\WMF\Reader\AbstractTestReader; class GDTest extends AbstractTestReader { /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testLoad(string $file): void { @@ -19,7 +21,7 @@ public function testLoad(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testGetResource(string $file): void { @@ -34,7 +36,7 @@ public function testGetResource(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testOutput(string $file): void { @@ -51,11 +53,22 @@ public function testOutput(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testIsWMF(string $file): void { $reader = new GD(); $this->assertTrue($reader->isWMF($this->getResourceDir() . $file)); } + + /** + * @dataProvider dataProviderFilesWMFNotImplemented + */ + public function testNotImplemented(string $file): void + { + $this->expectException(WMFException::class); + + $reader = new GD(); + $reader->load($this->getResourceDir() . $file); + } } diff --git a/tests/WMF/Reader/ImagickTest.php b/tests/WMF/Reader/WMF/ImagickTest.php similarity index 66% rename from tests/WMF/Reader/ImagickTest.php rename to tests/WMF/Reader/WMF/ImagickTest.php index a8076f2..e5d52fd 100644 --- a/tests/WMF/Reader/ImagickTest.php +++ b/tests/WMF/Reader/WMF/ImagickTest.php @@ -2,15 +2,17 @@ declare(strict_types=1); -namespace Tests\PhpOffice\WMF\Reader; +namespace Tests\PhpOffice\WMF\Reader\WMF; use Imagick as ImagickBase; -use PhpOffice\WMF\Reader\Imagick as ImagickReader; +use PhpOffice\WMF\Exception\WMFException; +use PhpOffice\WMF\Reader\WMF\Imagick as ImagickReader; +use Tests\PhpOffice\WMF\Reader\AbstractTestReader; class ImagickTest extends AbstractTestReader { /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testLoad(string $file): void { @@ -19,7 +21,7 @@ public function testLoad(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testGetResource(string $file): void { @@ -29,7 +31,7 @@ public function testGetResource(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testOutput(string $file): void { @@ -46,11 +48,22 @@ public function testOutput(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testIsWMF(string $file): void { $reader = new ImagickReader(); $this->assertTrue($reader->isWMF($this->getResourceDir() . $file)); } + + /** + * @dataProvider dataProviderFilesWMFNotImplemented + */ + public function testNotImplemented(string $file): void + { + $this->expectException(WMFException::class); + + $reader = new ImagickReader(); + $reader->load($this->getResourceDir() . $file); + } } diff --git a/tests/WMF/Reader/MagicTest.php b/tests/WMF/Reader/WMF/MagicTest.php similarity index 80% rename from tests/WMF/Reader/MagicTest.php rename to tests/WMF/Reader/WMF/MagicTest.php index 831ea14..5bfa59b 100644 --- a/tests/WMF/Reader/MagicTest.php +++ b/tests/WMF/Reader/WMF/MagicTest.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace Tests\PhpOffice\WMF\Reader; +namespace Tests\PhpOffice\WMF\Reader\WMF; -use PhpOffice\WMF\Reader\Magic; +use PhpOffice\WMF\Reader\WMF\Magic; +use Tests\PhpOffice\WMF\Reader\AbstractTestReader; class MagicTest extends AbstractTestReader { /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testLoad(string $file): void { @@ -18,7 +19,7 @@ public function testLoad(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testGetResource(string $file): void { @@ -28,7 +29,7 @@ public function testGetResource(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testOutput(string $file): void { @@ -45,7 +46,7 @@ public function testOutput(string $file): void } /** - * @dataProvider dataProviderFiles + * @dataProvider dataProviderFilesWMF */ public function testIsWMF(string $file): void { diff --git a/tests/resources/test_libuemf.png b/tests/resources/test_libuemf.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cefc685807152a8579d27e3e692eb879e2cbca GIT binary patch literal 44646 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%0Dyj_fCTl`a#Y-8Pe2@dFa(H*oph<>ulf0q$%%VA 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 U8;g2sz$ZQnQ!A6agQu?k7jt!_Y5)KL literal 0 HcmV?d00001 diff --git a/tests/resources/test_libuemf.wmf b/tests/resources/test_libuemf.wmf new file mode 100644 index 0000000000000000000000000000000000000000..bdf06a9d1bc776c06a9559eb5a5e05821e23aa1a GIT binary patch literal 33474 zcmeHw3w#yTwfCOKdClWw&LcU2a}GI4AO?iofJje}ngihxAOfa2np%p%JOFPDBt%Oo zExD3vq$JW-DLyXOpQSc8rkHyD{HSsjtc6@JYHYa{klT-+&3EPc^V-x#eyQd&-`ca! zp7Y4eF()?kVI~Z-_F8-Y_u6aky=KjsJu|<4_2k1y-CkdCBCm(XMuz__u;-c6AvfleREAoXraX|s z`LS#mGL4M<1evwe%ezNnQY|elF{$rB37S(?6H->-eZ-<{l16dqk&zKCJrDBj9(h?y z3y>axotDRGj8D_OacQhC*_?3rnBDdXN$scAqLQt5Hf^bG3aqL98X|elVtCk+<#~Aw zdEQQ%Ck<-&m_0K}pT$jEHrA_lpTn3UM`ClY+UvA$3)B{1)*MDcJ~+-3dQtxjJ5cpo zZVNBFVR_)L!h*R43kHz!AGVJk(jY^SZrIpVy*V)V+S!45g>$bl#u-pYMm*9KRi^;g zKSKiQX3(d(c6;-}Kw+T~4rvV&X|+WiTbX>wyq|HKYSfe$QUT6w8U)+m@ro2OhTW{& z)XHI=i@jj#;R$uvOsNZ+l;+Dbvrtxq5*};F>^8YgU8azkP(%-FL=R4@*=li{E|?Ov z#2AHu!CKv>dP~TBP(5PqRG4#~r4lV#rJ^gIk9wvo_=7OP0!RQ@0#4 z_d}^}d55VVP@*OEEim7@pRrnMB6gwnAsP~Ns1)=vqhqYq65#4#@3S0Z=UXe;K1(HA zZ;94GDBORz%nT^g!(;o_!`^4<;pbb+_&!S+A6v#qt9pwS>~18jvRN(jtwz!c(Q3&T zjHIQq)#8)lrL3wkZe_FGYB_7KhrQ3zY@csc;HW^FwrI0rwVYP!VehkSRzL?h@{o?l zqvLD7b-K%H8FCm≫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 literal 0 HcmV?d00001