2021-10-21 14:32:05 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
|
|
|
|
|
|
|
|
use Imagick;
|
|
|
|
use ImagickPixel;
|
|
|
|
use Intervention\Image\Collection;
|
|
|
|
use Intervention\Image\Drivers\Imagick\Encoders\GifEncoder;
|
|
|
|
use Intervention\Image\Drivers\Imagick\Frame;
|
|
|
|
use Intervention\Image\Drivers\Imagick\Image;
|
|
|
|
use Intervention\Image\Tests\TestCase;
|
|
|
|
use Intervention\MimeSniffer\MimeSniffer;
|
|
|
|
use Intervention\MimeSniffer\Types\ImageGif;
|
|
|
|
|
2021-12-22 11:28:44 +01:00
|
|
|
/**
|
|
|
|
* @requires extension imagick
|
2021-12-22 14:34:28 +01:00
|
|
|
* @covers \Intervention\Image\Drivers\Imagick\Encoders\GifEncoder
|
2021-12-22 11:28:44 +01:00
|
|
|
*/
|
2021-10-21 14:32:05 +02:00
|
|
|
class GifEncoderTest extends TestCase
|
|
|
|
{
|
|
|
|
protected function getTestImage(): Image
|
|
|
|
{
|
2022-06-20 16:33:38 +02:00
|
|
|
$imagick = new Imagick();
|
|
|
|
|
|
|
|
$frame = new Imagick();
|
|
|
|
$frame->newImage(30, 20, new ImagickPixel('red'), 'png');
|
|
|
|
$frame->setImageDelay(50);
|
|
|
|
$imagick->addImage($frame);
|
|
|
|
|
|
|
|
$frame = new Imagick();
|
|
|
|
$frame->newImage(30, 20, new ImagickPixel('green'), 'png');
|
|
|
|
$frame->setImageDelay(50);
|
|
|
|
$imagick->addImage($frame);
|
|
|
|
|
|
|
|
$frame = new Imagick();
|
|
|
|
$frame->newImage(30, 20, new ImagickPixel('blue'), 'png');
|
|
|
|
$frame->setImageDelay(50);
|
|
|
|
$imagick->addImage($frame);
|
|
|
|
|
|
|
|
return new Image($imagick);
|
2021-10-21 14:32:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testEncode(): void
|
|
|
|
{
|
|
|
|
$image = $this->getTestImage();
|
|
|
|
$encoder = new GifEncoder();
|
|
|
|
$result = $encoder->encode($image);
|
|
|
|
$this->assertTrue(MimeSniffer::createFromString($result)->matches(new ImageGif()));
|
|
|
|
}
|
|
|
|
}
|