mirror of
https://github.com/Intervention/image.git
synced 2025-08-25 14:50:48 +02:00
Add Encoder Options for progressive Jpeg & interlaced GIF format
This commit is contained in:
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
|
||||
|
||||
use Intervention\Gif\Decoder;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
|
||||
use Intervention\Image\Encoders\GifEncoder;
|
||||
@@ -20,5 +21,30 @@ final class GifEncoderTest extends ImagickTestCase
|
||||
$encoder = new GifEncoder();
|
||||
$result = $encoder->encode($image);
|
||||
$this->assertMediaType('image/gif', (string) $result);
|
||||
$this->assertFalse(
|
||||
Decoder::decode((string) $result)->getFirstFrame()->getImageDescriptor()->isInterlaced()
|
||||
);
|
||||
}
|
||||
|
||||
public function testEncodeInterlaced(): void
|
||||
{
|
||||
$image = $this->createTestImage(3, 2);
|
||||
$encoder = new GifEncoder(interlaced: true);
|
||||
$result = $encoder->encode($image);
|
||||
$this->assertMediaType('image/gif', (string) $result);
|
||||
$this->assertTrue(
|
||||
Decoder::decode((string) $result)->getFirstFrame()->getImageDescriptor()->isInterlaced()
|
||||
);
|
||||
}
|
||||
|
||||
public function testEncodeInterlacedAnimation(): void
|
||||
{
|
||||
$image = $this->createTestAnimation();
|
||||
$encoder = new GifEncoder(interlaced: true);
|
||||
$result = $encoder->encode($image);
|
||||
$this->assertMediaType('image/gif', (string) $result);
|
||||
$this->assertTrue(
|
||||
Decoder::decode((string) $result)->getFirstFrame()->getImageDescriptor()->isInterlaced()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -8,12 +8,15 @@ use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
|
||||
use Intervention\Image\Encoders\JpegEncoder;
|
||||
use Intervention\Image\Tests\ImagickTestCase;
|
||||
use Intervention\Image\Tests\Traits\CanDetectProgressiveJpeg;
|
||||
|
||||
#[RequiresPhpExtension('imagick')]
|
||||
#[CoversClass(\Intervention\Image\Encoders\JpegEncoder::class)]
|
||||
#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\JpegEncoder::class)]
|
||||
final class JpegEncoderTest extends ImagickTestCase
|
||||
{
|
||||
use CanDetectProgressiveJpeg;
|
||||
|
||||
public function testEncode(): void
|
||||
{
|
||||
$image = $this->createTestImage(3, 2);
|
||||
@@ -21,4 +24,13 @@ final class JpegEncoderTest extends ImagickTestCase
|
||||
$result = $encoder->encode($image);
|
||||
$this->assertMediaType('image/jpeg', (string) $result);
|
||||
}
|
||||
|
||||
public function testEncodeProgressive(): void
|
||||
{
|
||||
$image = $this->createTestImage(3, 2);
|
||||
$encoder = new JpegEncoder(progressive: true);
|
||||
$result = $encoder->encode($image);
|
||||
$this->assertMediaType('image/jpeg', (string) $result);
|
||||
$this->assertTrue($this->isProgressiveJpeg((string) $result));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user