setName($name); $drawing->setDescription('In-Memory image 1'); $drawing->setCoordinates('A1'); $drawing->setImageResource($gdImage); $drawing->setRenderingFunction(MemoryDrawing::RENDERING_PNG); $drawing->setMimeType(MemoryDrawing::MIMETYPE_PNG); if (version_compare(PHP_VERSION, '8.0.0', '>=') === true) { self::assertIsObject($drawing->getImageResource()); /** @phpstan-ignore-next-line */ self::assertInstanceOf(GdImage::class, $drawing->getImageResource()); } else { self::assertIsResource($drawing->getImageResource()); } self::assertSame(MemoryDrawing::MIMETYPE_DEFAULT, $drawing->getMimeType()); self::assertSame(MemoryDrawing::RENDERING_DEFAULT, $drawing->getRenderingFunction()); } public function testMemoryDrawingFromString(): void { $imageFile = __DIR__ . '/../../data/Worksheet/officelogo.jpg'; $imageString = file_get_contents($imageFile); if ($imageString === false) { self::markTestSkipped('Unable to read Image file for MemoryDrawing'); } $drawing = MemoryDrawing::fromString($imageString); if (version_compare(PHP_VERSION, '8.0.0', '>=') === true) { self::assertIsObject($drawing->getImageResource()); /** @phpstan-ignore-next-line */ self::assertInstanceOf(GdImage::class, $drawing->getImageResource()); } else { self::assertIsResource($drawing->getImageResource()); } self::assertSame(MemoryDrawing::MIMETYPE_JPEG, $drawing->getMimeType()); self::assertSame(MemoryDrawing::RENDERING_JPEG, $drawing->getRenderingFunction()); } public function testMemoryDrawingFromInvalidString(): void { $this->expectException(Exception::class); $this->expectExceptionMessage('Value cannot be converted to an image'); $imageString = 'I am not an image'; MemoryDrawing::fromString($imageString); } public function testMemoryDrawingFromStream(): void { $imageFile = __DIR__ . '/../../data/Worksheet/officelogo.jpg'; $imageStream = fopen($imageFile, 'rb'); if ($imageStream === false) { self::markTestSkipped('Unable to read Image file for MemoryDrawing'); } $drawing = MemoryDrawing::fromStream($imageStream); fclose($imageStream); if (version_compare(PHP_VERSION, '8.0.0', '>=') === true) { self::assertIsObject($drawing->getImageResource()); /** @phpstan-ignore-next-line */ self::assertInstanceOf(GdImage::class, $drawing->getImageResource()); } else { self::assertIsResource($drawing->getImageResource()); } self::assertSame(MemoryDrawing::MIMETYPE_JPEG, $drawing->getMimeType()); self::assertSame(MemoryDrawing::RENDERING_JPEG, $drawing->getRenderingFunction()); } }