mirror of
https://github.com/Intervention/image.git
synced 2025-09-03 10:53:01 +02:00
Add image cloning
This commit is contained in:
@@ -4,6 +4,10 @@ namespace Intervention\Image\Tests\Drivers\Gd;
|
||||
|
||||
use Intervention\Image\Analyzers\WidthAnalyzer;
|
||||
use Intervention\Image\Collection;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Alpha;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Blue;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Green;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Red;
|
||||
use Intervention\Image\Drivers\Gd\Core;
|
||||
use Intervention\Image\Drivers\Gd\Driver;
|
||||
use Intervention\Image\Drivers\Gd\Frame;
|
||||
@@ -17,10 +21,13 @@ use Intervention\Image\Interfaces\ResolutionInterface;
|
||||
use Intervention\Image\Interfaces\SizeInterface;
|
||||
use Intervention\Image\Modifiers\GreyscaleModifier;
|
||||
use Intervention\Image\Tests\TestCase;
|
||||
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
|
||||
use Intervention\Image\Typography\Font;
|
||||
|
||||
class ImageTest extends TestCase
|
||||
{
|
||||
use CanCreateGdTestImage;
|
||||
|
||||
protected Image $image;
|
||||
|
||||
public function setUp(): void
|
||||
@@ -37,6 +44,25 @@ class ImageTest extends TestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function testClone(): void
|
||||
{
|
||||
$image = $this->readTestImage('gradient.gif');
|
||||
$clone = clone $image;
|
||||
|
||||
$this->assertEquals(16, $image->width());
|
||||
$this->assertEquals(16, $clone->width());
|
||||
$result = $clone->crop(4, 4);
|
||||
$this->assertEquals(16, $image->width());
|
||||
$this->assertEquals(4, $clone->width());
|
||||
$this->assertEquals(4, $result->width());
|
||||
|
||||
$this->assertEquals('ff0000', $image->pickColor(0, 0)->toHex());
|
||||
$this->assertEquals('00000000', $image->pickColor(1, 0)->toHex());
|
||||
|
||||
$this->assertEquals('ff0000', $clone->pickColor(0, 0)->toHex());
|
||||
$this->assertEquals('00000000', $clone->pickColor(1, 0)->toHex());
|
||||
}
|
||||
|
||||
public function testDriver(): void
|
||||
{
|
||||
$this->assertInstanceOf(Driver::class, $this->image->driver());
|
||||
|
@@ -3,6 +3,11 @@
|
||||
namespace Intervention\Image\Tests\Drivers\Imagick;
|
||||
|
||||
use Imagick;
|
||||
use ImagickPixel;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Alpha;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Blue;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Green;
|
||||
use Intervention\Image\Colors\Rgb\Channels\Red;
|
||||
use Intervention\Image\Analyzers\WidthAnalyzer;
|
||||
use Intervention\Image\Collection;
|
||||
use Intervention\Image\Drivers\Imagick\Core;
|
||||
@@ -18,9 +23,12 @@ use Intervention\Image\Interfaces\ResolutionInterface;
|
||||
use Intervention\Image\Interfaces\SizeInterface;
|
||||
use Intervention\Image\Modifiers\GreyscaleModifier;
|
||||
use Intervention\Image\Tests\TestCase;
|
||||
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
|
||||
|
||||
class ImageTest extends TestCase
|
||||
{
|
||||
use CanCreateImagickTestImage;
|
||||
|
||||
protected Image $image;
|
||||
|
||||
public function setUp(): void
|
||||
@@ -36,6 +44,25 @@ class ImageTest extends TestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function testClone(): void
|
||||
{
|
||||
$image = $this->readTestImage('gradient.gif');
|
||||
$clone = clone $image;
|
||||
|
||||
$this->assertEquals(16, $image->width());
|
||||
$this->assertEquals(16, $clone->width());
|
||||
$result = $clone->crop(4, 4);
|
||||
$this->assertEquals(16, $image->width());
|
||||
$this->assertEquals(4, $clone->width());
|
||||
$this->assertEquals(4, $result->width());
|
||||
|
||||
$this->assertEquals('ff0000', $image->pickColor(0, 0)->toHex());
|
||||
$this->assertEquals('00000000', $image->pickColor(1, 0)->toHex());
|
||||
|
||||
$this->assertEquals('ff0000', $clone->pickColor(0, 0)->toHex());
|
||||
$this->assertEquals('00000000', $clone->pickColor(1, 0)->toHex());
|
||||
}
|
||||
|
||||
public function testDriver(): void
|
||||
{
|
||||
$this->assertInstanceOf(Driver::class, $this->image->driver());
|
||||
|
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Intervention\Image\Tests;
|
||||
|
||||
use Imagick;
|
||||
use ImagickPixel;
|
||||
use Intervention\Image\Drivers\Gd\Core as GdCore;
|
||||
use Intervention\Image\Drivers\Gd\Driver as GdDriver;
|
||||
use Intervention\Image\Drivers\Gd\Frame as GdFrame;
|
||||
use Intervention\Image\Drivers\Imagick\Core as ImagickCore;
|
||||
use Intervention\Image\Drivers\Imagick\Driver as ImagickDriver;
|
||||
use Intervention\Image\Image;
|
||||
|
||||
class ImageTest extends TestCase
|
||||
{
|
||||
public function testCloneImageGd(): void
|
||||
{
|
||||
$image = new Image(
|
||||
new GdDriver(),
|
||||
new GdCore([
|
||||
new GdFrame(imagecreatetruecolor(3, 3))
|
||||
])
|
||||
);
|
||||
|
||||
$clone = clone $image;
|
||||
|
||||
$this->assertEquals(3, $image->width());
|
||||
$this->assertEquals(3, $clone->width());
|
||||
$result = $clone->resize(1);
|
||||
$this->assertEquals(3, $image->width());
|
||||
$this->assertEquals(1, $clone->width());
|
||||
$this->assertEquals(1, $result->width());
|
||||
}
|
||||
|
||||
public function testCloneImageImagick(): void
|
||||
{
|
||||
$imagick = new Imagick();
|
||||
$imagick->newImage(3, 2, new ImagickPixel('red'), 'png');
|
||||
$image = new Image(
|
||||
new ImagickDriver(),
|
||||
new ImagickCore($imagick)
|
||||
);
|
||||
|
||||
$clone = clone $image;
|
||||
|
||||
$this->assertEquals(3, $image->width());
|
||||
$this->assertEquals(3, $clone->width());
|
||||
$result = $clone->resize(1);
|
||||
$this->assertEquals(3, $image->width());
|
||||
$this->assertEquals(1, $clone->width());
|
||||
$this->assertEquals(1, $result->width());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user