mirror of
https://github.com/Intervention/image.git
synced 2025-01-17 20:28:21 +01:00
1480 lines
61 KiB
PHP
1480 lines
61 KiB
PHP
<?php
|
|
|
|
class GdSystemTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
public function testMakeFromPath()
|
|
{
|
|
$img = $this->manager()->make('tests/images/circle.png');
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(50, $img->getWidth());
|
|
$this->assertEquals(50, $img->getHeight());
|
|
$this->assertEquals('image/png', $img->mime);
|
|
$this->assertEquals('tests/images', $img->dirname);
|
|
$this->assertEquals('circle.png', $img->basename);
|
|
$this->assertEquals('png', $img->extension);
|
|
$this->assertEquals('circle', $img->filename);
|
|
$this->assertEquals('image/png', $img->mime);
|
|
}
|
|
|
|
public function testMakeFromString()
|
|
{
|
|
$str = file_get_contents('tests/images/circle.png');
|
|
$img = $this->manager()->make($str);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(50, $img->getWidth());
|
|
$this->assertEquals(50, $img->getHeight());
|
|
$this->assertEquals('image/png', $img->mime);
|
|
}
|
|
|
|
public function testMakeFromResource()
|
|
{
|
|
$resource = imagecreatefrompng('tests/images/circle.png');
|
|
$img = $this->manager()->make($resource);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(50, $img->getWidth());
|
|
$this->assertEquals(50, $img->getHeight());
|
|
}
|
|
|
|
public function testCanvas()
|
|
{
|
|
$img = $this->manager()->canvas(30, 20);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(30, $img->getWidth());
|
|
$this->assertEquals(20, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
}
|
|
|
|
public function testCanvasWithSolidBackground()
|
|
{
|
|
$img = $this->manager()->canvas(30, 20, 'b53717');
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(30, $img->getWidth());
|
|
$this->assertEquals(20, $img->getHeight());
|
|
$this->assertEquals('#b53717', $img->pickColor(15, 15, 'hex'));
|
|
}
|
|
|
|
public function testGetSize()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$size = $img->getSize();
|
|
$this->assertInstanceOf('Intervention\Image\Size', $size);
|
|
$this->assertInternalType('int', $size->width);
|
|
$this->assertInternalType('int', $size->height);
|
|
$this->assertEquals(16, $size->width);
|
|
$this->assertEquals(16, $size->height);
|
|
}
|
|
|
|
public function testResizeImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/circle.png');
|
|
$img->resize(120, 150);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(120, $img->getWidth());
|
|
$this->assertEquals(150, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
}
|
|
|
|
public function testResizeImageOnlyWidth()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(120, null);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(120, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 0, 15);
|
|
}
|
|
|
|
public function testResizeImageOnlyHeight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(null, 150);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(150, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 15, 0);
|
|
}
|
|
|
|
public function testResizeImageAutoHeight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(50, null, function ($constraint) { $constraint->aspectRatio(); });
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(50, $img->getWidth());
|
|
$this->assertEquals(50, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 30, 0);
|
|
}
|
|
|
|
public function testResizeImageAutoWidth()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(null, 50, function ($constraint) { $constraint->aspectRatio(); });
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(50, $img->getWidth());
|
|
$this->assertEquals(50, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 30, 0);
|
|
}
|
|
|
|
public function testResizeDominantWidth()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(100, 120, function ($constraint) { $constraint->aspectRatio(); });
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(100, $img->getWidth());
|
|
$this->assertEquals(100, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 60, 0);
|
|
}
|
|
|
|
public function testResizeImagePreserveSimpleUpsizing()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resize(100, 100, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); });
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 15, 0);
|
|
}
|
|
|
|
public function testWidenImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->widen(100);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(100, $img->getWidth());
|
|
$this->assertEquals(100, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 60, 0);
|
|
}
|
|
|
|
public function testHeightenImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->heighten(100);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('resource', $img->getCore());
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(100, $img->getWidth());
|
|
$this->assertEquals(100, $img->getHeight());
|
|
$this->assertTransparentPosition($img, 60, 0);
|
|
}
|
|
|
|
public function testResizeCanvasCenter()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 4);
|
|
$this->assertColorAtPosition('#445160', $img, 5, 5);
|
|
$this->assertTransparentPosition($img, 0, 5);
|
|
$this->assertTransparentPosition($img, 5, 4);
|
|
}
|
|
|
|
public function testResizeCanvasTopLeft()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'top-left');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertTransparentPosition($img, 0, 8);
|
|
$this->assertTransparentPosition($img, 8, 7);
|
|
}
|
|
|
|
public function testResizeCanvasTop()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'top');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#445160', $img, 5, 8);
|
|
$this->assertTransparentPosition($img, 0, 8);
|
|
$this->assertTransparentPosition($img, 5, 7);
|
|
}
|
|
|
|
public function testResizeCanvasTopRight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'top-right');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#445160', $img, 2, 8);
|
|
$this->assertTransparentPosition($img, 0, 8);
|
|
$this->assertTransparentPosition($img, 2, 7);
|
|
}
|
|
|
|
public function testResizeCanvasLeft()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'left');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 4);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 5);
|
|
$this->assertTransparentPosition($img, 0, 5);
|
|
$this->assertTransparentPosition($img, 8, 4);
|
|
}
|
|
|
|
public function testResizeCanvasRight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'right');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 4);
|
|
$this->assertColorAtPosition('#445160', $img, 2, 5);
|
|
$this->assertTransparentPosition($img, 0, 5);
|
|
$this->assertTransparentPosition($img, 2, 4);
|
|
}
|
|
|
|
public function testResizeCanvasBottomLeft()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'bottom-left');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 1);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 2);
|
|
$this->assertTransparentPosition($img, 0, 2);
|
|
$this->assertTransparentPosition($img, 8, 1);
|
|
}
|
|
|
|
public function testResizeCanvasBottomRight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'bottom-right');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 1);
|
|
$this->assertColorAtPosition('#445160', $img, 2, 2);
|
|
$this->assertTransparentPosition($img, 0, 2);
|
|
$this->assertTransparentPosition($img, 2, 1);
|
|
}
|
|
|
|
public function testResizeCanvasBottom()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 10, 'bottom');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 1);
|
|
$this->assertColorAtPosition('#445160', $img, 5, 2);
|
|
$this->assertTransparentPosition($img, 0, 2);
|
|
$this->assertTransparentPosition($img, 5, 1);
|
|
}
|
|
|
|
public function testResizeCanvasRelativeWithBackground()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(4, 4, 'center', true, '#ff00ff');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(20, $img->getWidth());
|
|
$this->assertEquals(20, $img->getHeight());
|
|
$this->assertColorAtPosition('#ff00ff', $img, 0, 0);
|
|
$this->assertColorAtPosition('#ff00ff', $img, 19, 19);
|
|
$this->assertColorAtPosition('#b4e000', $img, 2, 9);
|
|
$this->assertColorAtPosition('#445160', $img, 10, 10);
|
|
$this->assertTransparentPosition($img, 2, 10);
|
|
$this->assertTransparentPosition($img, 10, 9);
|
|
}
|
|
|
|
public function testResizeCanvasJustWidth()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, null);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#445160', $img, 5, 8);
|
|
$this->assertTransparentPosition($img, 0, 8);
|
|
$this->assertTransparentPosition($img, 5, 7);
|
|
}
|
|
|
|
public function testResizeCanvasJustHeight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(null, 10);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 4);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 5);
|
|
$this->assertTransparentPosition($img, 0, 5);
|
|
$this->assertTransparentPosition($img, 8, 4);
|
|
}
|
|
|
|
public function testResizeCanvasSmallerWidthLargerHeight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(10, 20);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(10, $img->getWidth());
|
|
$this->assertEquals(20, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 9);
|
|
$this->assertColorAtPosition('#445160', $img, 5, 10);
|
|
$this->assertTransparentPosition($img, 0, 10);
|
|
$this->assertTransparentPosition($img, 5, 9);
|
|
}
|
|
|
|
public function testResizeCanvasLargerWidthSmallerHeight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(20, 10);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(20, $img->getWidth());
|
|
$this->assertEquals(10, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 2, 4);
|
|
$this->assertColorAtPosition('#445160', $img, 10, 5);
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
$this->assertTransparentPosition($img, 2, 5);
|
|
$this->assertTransparentPosition($img, 10, 4);
|
|
}
|
|
|
|
public function testResizeCanvasNegative()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(-4, -4);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(12, $img->getWidth());
|
|
$this->assertEquals(12, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 5);
|
|
$this->assertColorAtPosition('#445160', $img, 6, 6);
|
|
$this->assertTransparentPosition($img, 0, 6);
|
|
$this->assertTransparentPosition($img, 6, 5);
|
|
}
|
|
|
|
public function testResizeCanvasLargerHeightAutoWidth()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->resizeCanvas(null, 20, 'bottom-left', false, '#ff00ff');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(20, $img->getHeight());
|
|
$this->assertColorAtPosition('#ff00ff', $img, 0, 0);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 4);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 11);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 12);
|
|
$this->assertTransparentPosition($img, 0, 12);
|
|
$this->assertTransparentPosition($img, 8, 11);
|
|
}
|
|
|
|
public function testResizeCanvasBorderNonRelative()
|
|
{
|
|
$img = $this->manager()->canvas(1, 1, 'ff0000');
|
|
$img->resizeCanvas(17, 17, 'center', false, '333333');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(17, $img->getWidth());
|
|
$this->assertEquals(17, $img->getHeight());
|
|
$this->assertColorAtPosition('#333333', $img, 0, 0);
|
|
$this->assertColorAtPosition('#333333', $img, 5, 5);
|
|
$this->assertColorAtPosition('#333333', $img, 7, 7);
|
|
$this->assertColorAtPosition('#ff0000', $img, 8, 8);
|
|
}
|
|
|
|
public function testCropImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->crop(6, 6); // should be centered without pos.
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(6, $img->getWidth());
|
|
$this->assertEquals(6, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 2);
|
|
$this->assertColorAtPosition('#445160', $img, 3, 3);
|
|
$this->assertTransparentPosition($img, 0, 3);
|
|
$this->assertTransparentPosition($img, 3, 2);
|
|
}
|
|
|
|
public function testCropImageWithPosition()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->crop(4, 4, 7, 7); // should be centered without pos.
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(4, $img->getWidth());
|
|
$this->assertEquals(4, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 0);
|
|
$this->assertColorAtPosition('#445160', $img, 1, 1);
|
|
$this->assertTransparentPosition($img, 0, 1);
|
|
$this->assertTransparentPosition($img, 1, 0);
|
|
}
|
|
|
|
public function testFitImageSquare()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->fit(6);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(6, $img->getWidth());
|
|
$this->assertEquals(6, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 2);
|
|
$this->assertColorAtPosition('#445060', $img, 3, 3);
|
|
$this->assertTransparentPosition($img, 0, 3);
|
|
$this->assertTransparentPosition($img, 3, 2);
|
|
}
|
|
|
|
public function testFitImageRectangle()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->fit(12, 6);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(12, $img->getWidth());
|
|
$this->assertEquals(6, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 2);
|
|
$this->assertColorAtPosition('#445160', $img, 6, 3);
|
|
$this->assertTransparentPosition($img, 0, 3);
|
|
$this->assertTransparentPosition($img, 6, 2);
|
|
}
|
|
|
|
public function testFlipImageHorizontal()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->flip('h');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 8, 7);
|
|
$this->assertColorAtPosition('#445160', $img, 0, 8);
|
|
$this->assertTransparentPosition($img, 0, 7);
|
|
$this->assertTransparentPosition($img, 8, 8);
|
|
}
|
|
|
|
public function testFlipImageVertical()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->flip('v');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 7);
|
|
$this->assertTransparentPosition($img, 0, 7);
|
|
$this->assertTransparentPosition($img, 8, 8);
|
|
}
|
|
|
|
public function testRotateImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->rotate(90);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 7);
|
|
$this->assertTransparentPosition($img, 0, 7);
|
|
$this->assertTransparentPosition($img, 8, 8);
|
|
}
|
|
|
|
public function testInsertImage()
|
|
{
|
|
$watermark = $this->manager()->canvas(16, 16, '#0000ff'); // create watermark
|
|
|
|
// top-left anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top-left', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(0, 0, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(16, 16, 'hex'));
|
|
|
|
// top-left anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top-left', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(9, 9, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(10, 10, 'hex'));
|
|
|
|
// top anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(0, 0, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(23, 15, 'hex'));
|
|
|
|
// top anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(18, 10, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(31, 26, 'hex'));
|
|
|
|
// top-right anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top-right', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(15, 0, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(31, 0, 'hex'));
|
|
|
|
// top-right anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'top-right', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(6, 9, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(21, 25, 'hex'));
|
|
|
|
// left anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'left', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(15, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(0, 7, 'hex'));
|
|
|
|
// left anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'left', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(8, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(10, 7, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(25, 23, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(25, 8, 'hex'));
|
|
|
|
// right anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'right', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(31, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(15, 15, 'hex'));
|
|
|
|
// right anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'right', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(5, 8, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(22, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(21, 7, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(6, 8, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(21, 23, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(6, 23, 'hex'));
|
|
|
|
// bottom-left anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom-left', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(15, 31, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(0, 15, 'hex'));
|
|
|
|
// bottom-left anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom-left', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(10, 21, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(9, 20, 'hex'));
|
|
|
|
// bottom anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(8, 16, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(8, 15, 'hex'));
|
|
|
|
// bottom anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#ff0000', $img->pickColor(5, 8, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(23, 22, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(24, 21, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(7, 6, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(8, 6, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(23, 21, 'hex'));
|
|
$this->assertEquals('#0000ff', $img->pickColor(23, 6, 'hex'));
|
|
|
|
// bottom-right anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom-right', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(16, 16, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(15, 16, 'hex'));
|
|
|
|
// bottom-right anchor coordinates
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'bottom-right', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(21, 21, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(22, 22, 'hex'));
|
|
|
|
// center anchor
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'center', 0, 0);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(23, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(8, 7, 'hex'));
|
|
|
|
// center anchor coordinates / coordinates will be ignored for center
|
|
$img = $this->manager()->canvas(32, 32, '#ff0000'); // create canvas
|
|
$img->insert($watermark, 'center', 10, 10);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals($img->getWidth(), 32);
|
|
$this->assertEquals($img->getHeight(), 32);
|
|
$this->assertEquals('#0000ff', $img->pickColor(23, 23, 'hex'));
|
|
$this->assertEquals('#ff0000', $img->pickColor(8, 7, 'hex'));
|
|
}
|
|
|
|
public function testInsertWithAlphaChannel()
|
|
{
|
|
$img = $this->manager()->canvas(50, 50, 'ff0000');
|
|
$img->insert('tests/images/circle.png');
|
|
$this->assertColorAtPosition('#ff0000', $img, 0, 0);
|
|
$this->assertColorAtPosition('#320000', $img, 30, 30);
|
|
}
|
|
|
|
public function testInsertAfterResize()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->resize(16, 16)->insert('tests/images/tile.png');
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#00aef0', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#ffa601', $img, 8, 7);
|
|
}
|
|
|
|
public function testInsertResource()
|
|
{
|
|
$resource = imagecreatefrompng('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->insert($resource);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#00aef0', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 24, 24);
|
|
}
|
|
|
|
public function testInsertBinary()
|
|
{
|
|
$data = file_get_contents('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->insert($data);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#00aef0', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 24, 24);
|
|
}
|
|
|
|
public function testInsertInterventionImage()
|
|
{
|
|
$obj = $this->manager()->make('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->insert($obj);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 7);
|
|
$this->assertColorAtPosition('#00aef0', $img, 0, 8);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 24, 24);
|
|
}
|
|
|
|
public function testOpacity()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->opacity(50);
|
|
$checkColor = $img->pickColor(7, 7, 'array');
|
|
$this->assertEquals($checkColor[0], 180);
|
|
$this->assertEquals($checkColor[1], 224);
|
|
$this->assertEquals($checkColor[2], 0);
|
|
$this->assertEquals($checkColor[3], 0.5);
|
|
$checkColor = $img->pickColor(8, 8, 'array');
|
|
$this->assertEquals($checkColor[0], 68);
|
|
$this->assertEquals($checkColor[1], 81);
|
|
$this->assertEquals($checkColor[2], 96);
|
|
$this->assertEquals($checkColor[3], 0.5);
|
|
}
|
|
|
|
public function testMaskImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->mask('tests/images/gradient.png');
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
$this->assertTransparentPosition($img, 23, 23);
|
|
$checkColor = $img->pickColor(23, 24, 'array');
|
|
$this->assertEquals($checkColor[0], 255);
|
|
$this->assertEquals($checkColor[1], 166);
|
|
$this->assertEquals($checkColor[2], 1);
|
|
$this->assertEquals($checkColor[3], 0.97);
|
|
$checkColor = $img->pickColor(39, 25, 'array');
|
|
$this->assertEquals($checkColor[0], 0);
|
|
$this->assertEquals($checkColor[1], 174);
|
|
$this->assertEquals($checkColor[2], 240);
|
|
$this->assertEquals($checkColor[3], 0.32);
|
|
}
|
|
|
|
public function testMaskImageWithAlpha()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->mask('tests/images/star.png', true);
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
$this->assertTransparentPosition($img, 16, 16);
|
|
$checkColor = $img->pickColor(18, 18, 'array');
|
|
$this->assertEquals($checkColor[0], 255);
|
|
$this->assertEquals($checkColor[1], 166);
|
|
$this->assertEquals($checkColor[2], 1);
|
|
$this->assertEquals($checkColor[3], 0.65);
|
|
$checkColor = $img->pickColor(24, 10, 'array');
|
|
$this->assertEquals($checkColor[0], 0);
|
|
$this->assertEquals($checkColor[1], 174);
|
|
$this->assertEquals($checkColor[2], 240);
|
|
$this->assertEquals($checkColor[3], 0.80);
|
|
}
|
|
|
|
public function testPixelateImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->pixelate(20);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
}
|
|
|
|
public function testGreyscaleImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->greyscale();
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertTransparentPosition($img, 8, 0);
|
|
$this->assertColorAtPosition('#b9b9b9', $img, 0, 0);
|
|
}
|
|
|
|
public function testInvertImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->invert();
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertTransparentPosition($img, 8, 0);
|
|
$this->assertColorAtPosition('#4b1fff', $img, 0, 0);
|
|
}
|
|
|
|
public function testBlurImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->blur(1);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
}
|
|
|
|
public function testFillImageWithColor()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->fill('b53717');
|
|
$this->assertColorAtPosition('#b53717', $img, 0, 0);
|
|
$this->assertColorAtPosition('#b53717', $img, 15, 15);
|
|
}
|
|
|
|
public function testFillImageWithColorAtPosition()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->fill('b53717', 0, 0);
|
|
$this->assertTransparentPosition($img, 0, 8);
|
|
$this->assertColorAtPosition('#b53717', $img, 0, 0);
|
|
$this->assertColorAtPosition('#445160', $img, 15, 15);
|
|
}
|
|
|
|
public function testFillImageWithResource()
|
|
{
|
|
$resource = imagecreatefrompng('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->fill($resource, 0, 0);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 0);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 20, 20);
|
|
}
|
|
|
|
public function testFillImageWithBinary()
|
|
{
|
|
$data = file_get_contents('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->fill($data, 0, 0);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 0);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 20, 20);
|
|
}
|
|
|
|
public function testFillImageWithInterventionImage()
|
|
{
|
|
$obj = $this->manager()->make('tests/images/tile.png');
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->fill($obj, 0, 0);
|
|
$this->assertColorAtPosition('#b4e000', $img, 0, 0);
|
|
$this->assertColorAtPosition('#445160', $img, 8, 8);
|
|
$this->assertColorAtPosition('#00aef0', $img, 8, 7);
|
|
$this->assertColorAtPosition('#ffa601', $img, 20, 20);
|
|
}
|
|
|
|
public function testPixelImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$coords = array(array(5, 5), array(12, 12));
|
|
$img = $img->pixel('fdf5e4', $coords[0][0], $coords[0][1]);
|
|
$img = $img->pixel(array(255, 255, 255), $coords[1][0], $coords[1][1]);
|
|
$this->assertEquals('#fdf5e4', $img->pickColor($coords[0][0], $coords[0][1], 'hex'));
|
|
$this->assertEquals('#ffffff', $img->pickColor($coords[1][0], $coords[1][1], 'hex'));
|
|
}
|
|
|
|
public function testTextImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img = $img->text('0', 3, 11);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertEquals('a9e2b15452b2a4637b65625188d206f6', $img->checksum());
|
|
|
|
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img = $img->text('0', 8, 2, function($font) {
|
|
$font->align('center');
|
|
$font->valign('top');
|
|
$font->color('000000');
|
|
});
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertEquals('649f3f529d3931c56601155fd2680959', $img->checksum());
|
|
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img = $img->text('0', 8, 8, function($font) {
|
|
$font->align('right');
|
|
$font->valign('middle');
|
|
$font->file(2);
|
|
$font->color('000000');
|
|
});
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
$this->assertEquals('c0dda67589c46a90d78a97b891a811ee', $img->checksum());
|
|
}
|
|
|
|
public function testRectangleImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img->rectangle(5, 5, 11, 11, function ($draw) { $draw->background('#ff0000'); $draw->border(1, '#0000ff'); });
|
|
$this->assertEquals('e95487dcc29daf371a0e9190bff8dbfe', $img->checksum());
|
|
}
|
|
|
|
public function testLineImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img->line(0, 0, 15, 15, function ($draw) { $draw->color('#ff0000'); });
|
|
$this->assertEquals('a6237d34f6e95f30d2fc91a46bd058e6', $img->checksum());
|
|
}
|
|
|
|
public function testEllipseImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img->ellipse(8, 8, 12, 8, function ($draw) { $draw->background('#ff0000'); $draw->border(1, '#0000ff'); });
|
|
$this->assertEquals('d56363fd454ad6e25a23c2a4a7c77998', $img->checksum());
|
|
}
|
|
|
|
public function testCircleImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, 'ffffff');
|
|
$img->circle(8, 8, 12, function ($draw) { $draw->background('#ff0000'); $draw->border(1, '#0000ff'); });
|
|
$this->assertEquals('c214f58de03d171f7f278a7b957bab50', $img->checksum());
|
|
}
|
|
|
|
public function testResetImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->backup();
|
|
$img->resize(30, 20);
|
|
$img->reset();
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
}
|
|
|
|
public function testResetEmptyImage()
|
|
{
|
|
$img = $this->manager()->canvas(16, 16, '#0000ff');
|
|
$img->backup();
|
|
$img->resize(30, 20);
|
|
$img->fill('#ff0000');
|
|
$img->reset();
|
|
$this->assertInternalType('int', $img->getWidth());
|
|
$this->assertInternalType('int', $img->getHeight());
|
|
$this->assertEquals(16, $img->getWidth());
|
|
$this->assertEquals(16, $img->getHeight());
|
|
$this->assertColorAtPosition('#0000ff', $img, 0, 0);
|
|
}
|
|
|
|
public function testResetKeepTransparency()
|
|
{
|
|
$img = $this->manager()->make('tests/images/circle.png');
|
|
$img->backup();
|
|
$img->reset();
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
}
|
|
|
|
public function testLimitColors()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->limitColors(4);
|
|
$this->assertLessThanOrEqual(5, imagecolorstotal($img->getCore()));
|
|
}
|
|
|
|
public function testLimitColorsKeepTransparency()
|
|
{
|
|
$img = $this->manager()->make('tests/images/star.png');
|
|
$img->limitColors(16);
|
|
$this->assertLessThanOrEqual(17, imagecolorstotal($img->getCore()));
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
$this->assertColorAtPosition('#0c02b4', $img, 6, 12);
|
|
$this->assertColorAtPosition('#fcbe04', $img, 22, 24);
|
|
}
|
|
|
|
public function testLimitColorsKeepTransparencyWithMatte()
|
|
{
|
|
$img = $this->manager()->make('tests/images/star.png');
|
|
$img->limitColors(64, '#00ff00');
|
|
$this->assertLessThanOrEqual(65, imagecolorstotal($img->getCore()));
|
|
$this->assertTransparentPosition($img, 0, 0);
|
|
$this->assertColorAtPosition('#04f204', $img, 12, 10);
|
|
$this->assertColorAtPosition('#06fe04', $img, 22, 17);
|
|
$this->assertColorAtPosition('#e40214', $img, 16, 21);
|
|
}
|
|
|
|
public function testPickColorFromTrueColor()
|
|
{
|
|
$img = $this->manager()->make('tests/images/star.png');
|
|
$c = $img->pickColor(0, 0);
|
|
$this->assertEquals(255, $c[0]);
|
|
$this->assertEquals(255, $c[1]);
|
|
$this->assertEquals(255, $c[2]);
|
|
$this->assertEquals(0, $c[3]);
|
|
|
|
$c = $img->pickColor(11, 11);
|
|
$this->assertEquals(34, $c[0]);
|
|
$this->assertEquals(0, $c[1]);
|
|
$this->assertEquals(160, $c[2]);
|
|
$this->assertEquals(0.46, $c[3]);
|
|
|
|
$c = $img->pickColor(16, 16);
|
|
$this->assertEquals(231, $c[0]);
|
|
$this->assertEquals(0, $c[1]);
|
|
$this->assertEquals(18, $c[2]);
|
|
$this->assertEquals(1, $c[3]);
|
|
}
|
|
|
|
public function testPickColorFromIndexed()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$c = $img->pickColor(0, 0);
|
|
$this->assertEquals(180, $c[0]);
|
|
$this->assertEquals(224, $c[1]);
|
|
$this->assertEquals(0, $c[2]);
|
|
$this->assertEquals(1, $c[3]);
|
|
|
|
$c = $img->pickColor(8, 8);
|
|
$this->assertEquals(68, $c[0]);
|
|
$this->assertEquals(81, $c[1]);
|
|
$this->assertEquals(96, $c[2]);
|
|
$this->assertEquals(1, $c[3]);
|
|
|
|
$c = $img->pickColor(0, 15);
|
|
$this->assertEquals(0, $c[0]);
|
|
$this->assertEquals(0, $c[1]);
|
|
$this->assertEquals(0, $c[2]);
|
|
$this->assertEquals(0, $c[3]);
|
|
}
|
|
|
|
public function testPickColorFromPalette()
|
|
{
|
|
$img = $this->manager()->make('tests/images/tile.png');
|
|
$img->limitColors(200);
|
|
|
|
$c = $img->pickColor(0, 0);
|
|
$this->assertEquals(180, $c[0]);
|
|
$this->assertEquals(226, $c[1]);
|
|
$this->assertEquals(4, $c[2]);
|
|
$this->assertEquals(1, $c[3]);
|
|
|
|
$c = $img->pickColor(8, 8);
|
|
$this->assertEquals(68, $c[0]);
|
|
$this->assertEquals(82, $c[1]);
|
|
$this->assertEquals(100, $c[2]);
|
|
$this->assertEquals(1, $c[3]);
|
|
|
|
$c = $img->pickColor(0, 15);
|
|
$this->assertEquals(0, $c[0]);
|
|
$this->assertEquals(0, $c[1]);
|
|
$this->assertEquals(0, $c[2]);
|
|
$this->assertEquals(0, $c[3]);
|
|
}
|
|
|
|
public function testInterlaceImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->interlace();
|
|
$img->encode('png');
|
|
$this->assertTrue((ord($img->encoded[28]) != '0'));
|
|
$img->interlace(false);
|
|
$img->encode('png');
|
|
$this->assertFalse((ord($img->encoded[28]) != '0'));
|
|
}
|
|
|
|
public function testGammaImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->gamma(1.6);
|
|
$this->assertColorAtPosition('#00c9f6', $img, 0, 0);
|
|
$this->assertColorAtPosition('#ffc308', $img, 24, 24);
|
|
}
|
|
|
|
public function testBrightnessImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->brightness(35);
|
|
$this->assertColorAtPosition('#59ffff', $img, 0, 0);
|
|
$this->assertColorAtPosition('#ffff5a', $img, 24, 24);
|
|
}
|
|
|
|
public function testContrastImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->contrast(35);
|
|
$this->assertColorAtPosition('#00d4ff', $img, 0, 0);
|
|
$this->assertColorAtPosition('#ffc500', $img, 24, 24);
|
|
}
|
|
|
|
public function testColorizeImage()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->colorize(40, 25, -50);
|
|
$this->assertColorAtPosition('#66ee70', $img, 0, 0);
|
|
$this->assertColorAtPosition('#ffe600', $img, 24, 24);
|
|
}
|
|
|
|
public function testTrimGradient()
|
|
{
|
|
$canvas = $this->manager()->make('tests/images/gradient.png');
|
|
|
|
$img = clone $canvas;
|
|
$img->trim();
|
|
$this->assertEquals($img->getWidth(), 46);
|
|
$this->assertEquals($img->getHeight(), 46);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 10);
|
|
$this->assertEquals($img->getWidth(), 38);
|
|
$this->assertEquals($img->getHeight(), 38);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 20);
|
|
$this->assertEquals($img->getWidth(), 34);
|
|
$this->assertEquals($img->getHeight(), 34);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 30);
|
|
$this->assertEquals($img->getWidth(), 30);
|
|
$this->assertEquals($img->getHeight(), 30);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 40);
|
|
$this->assertEquals($img->getWidth(), 26);
|
|
$this->assertEquals($img->getHeight(), 26);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 50);
|
|
$this->assertEquals($img->getWidth(), 22);
|
|
$this->assertEquals($img->getHeight(), 22);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 60);
|
|
$this->assertEquals($img->getWidth(), 20);
|
|
$this->assertEquals($img->getHeight(), 20);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 70);
|
|
$this->assertEquals($img->getWidth(), 16);
|
|
$this->assertEquals($img->getHeight(), 16);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 80);
|
|
$this->assertEquals($img->getWidth(), 12);
|
|
$this->assertEquals($img->getHeight(), 12);
|
|
|
|
$img = clone $canvas;
|
|
$img->trim(null, null, 90);
|
|
$this->assertEquals($img->getWidth(), 8);
|
|
$this->assertEquals($img->getHeight(), 8);
|
|
}
|
|
|
|
public function testTrimOnlyLeftAndRight()
|
|
{
|
|
$img = $this->manager()->make('tests/images/gradient.png');
|
|
$img->trim(null, array('left', 'right'), 60);
|
|
$this->assertEquals($img->getWidth(), 20);
|
|
$this->assertEquals($img->getHeight(), 50);
|
|
}
|
|
|
|
public function testTrimOnlyTopAndBottom()
|
|
{
|
|
$img = $this->manager()->make('tests/images/gradient.png');
|
|
$img->trim(null, array('top', 'bottom'), 60);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 20);
|
|
}
|
|
|
|
public function testTrimOnlyTop()
|
|
{
|
|
$img = $this->manager()->make('tests/images/gradient.png');
|
|
$img->trim(null, 'top', 60);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 35);
|
|
}
|
|
|
|
public function testTrimOnlyBottom()
|
|
{
|
|
$img = $this->manager()->make('tests/images/gradient.png');
|
|
$img->trim(null, 'top', 60);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 35);
|
|
}
|
|
|
|
public function testTrimWithFeather()
|
|
{
|
|
$canvas = $this->manager()->make('tests/images/trim.png');
|
|
|
|
$img = clone $canvas;
|
|
$feather = 5;
|
|
$img->trim(null, null, null, $feather);
|
|
$this->assertEquals($img->getWidth(), 28 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 28 + $feather * 2);
|
|
|
|
$img = clone $canvas;
|
|
$feather = 10;
|
|
$img->trim(null, null, null, $feather);
|
|
$this->assertEquals($img->getWidth(), 28 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 28 + $feather * 2);
|
|
|
|
$img = clone $canvas;
|
|
$feather = 20; // must respect original dimensions of image
|
|
$img->trim(null, null, null, $feather);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 50);
|
|
|
|
$img = clone $canvas;
|
|
$feather = -5;
|
|
$img->trim(null, null, null, $feather);
|
|
$this->assertEquals($img->getWidth(), 28 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 28 + $feather * 2);
|
|
|
|
$img = clone $canvas;
|
|
$feather = -10;
|
|
$img->trim(null, null, null, $feather);
|
|
$this->assertEquals($img->getWidth(), 28 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 28 + $feather * 2);
|
|
|
|
// trim only left and right with feather
|
|
$img = clone $canvas;
|
|
$feather = 10;
|
|
$img->trim(null, array('left', 'right'), null, $feather);
|
|
$this->assertEquals($img->getWidth(), 28 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 50);
|
|
|
|
// trim only top and bottom with feather
|
|
$img = clone $canvas;
|
|
$feather = 10;
|
|
$img->trim(null, array('top', 'bottom'), null, $feather);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 28 + $feather * 2);
|
|
|
|
// trim with tolerance and feather
|
|
$canvas = $this->manager()->make('tests/images/gradient.png');
|
|
|
|
$img = clone $canvas;
|
|
$feather = 2;
|
|
$img->trim(null, null, 10, $feather);
|
|
$this->assertEquals($img->getWidth(), 38 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 38 + $feather * 2);
|
|
|
|
$img = clone $canvas;
|
|
$feather = 5;
|
|
$img->trim(null, null, 10, $feather);
|
|
$this->assertEquals($img->getWidth(), 38 + $feather * 2);
|
|
$this->assertEquals($img->getHeight(), 38 + $feather * 2);
|
|
|
|
$img = clone $canvas;
|
|
$feather = 10; // should respect original dimensions
|
|
$img->trim(null, null, 20, $feather);
|
|
$this->assertEquals($img->getWidth(), 50);
|
|
$this->assertEquals($img->getHeight(), 50);
|
|
}
|
|
|
|
public function testEncodeDefault()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->encode();
|
|
$this->assertInternalType('resource', imagecreatefromstring($img->encoded));
|
|
}
|
|
|
|
public function testEncodeJpeg()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->encode('jpg');
|
|
$this->assertInternalType('resource', imagecreatefromstring($img->encoded));
|
|
}
|
|
|
|
public function testEncodeGif()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->encode('gif');
|
|
$this->assertInternalType('resource', imagecreatefromstring($img->encoded));
|
|
}
|
|
|
|
public function testEncodeDataUrl()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->encode('data-url');
|
|
$this->assertEquals('data:image/png;base64', substr($img->encoded, 0, 21));
|
|
}
|
|
|
|
public function testExifReadAll()
|
|
{
|
|
$img = $this->manager()->make('tests/images/exif.jpg');
|
|
$data = $img->exif();
|
|
$this->assertInternalType('array', $data);
|
|
$this->assertEquals(19, count($data));
|
|
}
|
|
|
|
public function testExifReadKey()
|
|
{
|
|
$img = $this->manager()->make('tests/images/exif.jpg');
|
|
$data = $img->exif('Artist');
|
|
$this->assertInternalType('string', $data);
|
|
$this->assertEquals('Oliver Vogel', $data);
|
|
}
|
|
|
|
public function testExifReadNotExistingKey()
|
|
{
|
|
$img = $this->manager()->make('tests/images/exif.jpg');
|
|
$data = $img->exif('xxx');
|
|
$this->assertEquals(null, $data);
|
|
}
|
|
|
|
public function testSaveImage()
|
|
{
|
|
$save_as = 'tests/tmp/foo.jpg';
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->save($save_as, 80);
|
|
$this->assertFileExists($save_as);
|
|
$this->assertEquals($img->dirname, 'tests/tmp');
|
|
$this->assertEquals($img->basename, 'foo.jpg');
|
|
$this->assertEquals($img->extension, 'jpg');
|
|
$this->assertEquals($img->filename, 'foo');
|
|
$this->assertEquals($img->mime, 'image/jpeg');
|
|
@unlink($save_as);
|
|
|
|
$save_as = 'tests/tmp/foo.png';
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->save($save_as);
|
|
$this->assertEquals($img->dirname, 'tests/tmp');
|
|
$this->assertEquals($img->basename, 'foo.png');
|
|
$this->assertEquals($img->extension, 'png');
|
|
$this->assertEquals($img->filename, 'foo');
|
|
$this->assertEquals($img->mime, 'image/png');
|
|
$this->assertFileExists($save_as);
|
|
@unlink($save_as);
|
|
|
|
$save_as = 'tests/tmp/foo.jpg';
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->save($save_as, 0);
|
|
$this->assertEquals($img->dirname, 'tests/tmp');
|
|
$this->assertEquals($img->basename, 'foo.jpg');
|
|
$this->assertEquals($img->extension, 'jpg');
|
|
$this->assertEquals($img->filename, 'foo');
|
|
$this->assertEquals($img->mime, 'image/jpeg');
|
|
$this->assertFileExists($save_as);
|
|
@unlink($save_as);
|
|
}
|
|
|
|
public function testDestroy()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->destroy();
|
|
$this->assertEquals(get_resource_type($img->getCore()), 'Unknown');
|
|
}
|
|
|
|
public function testStringConversion()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$value = strval($img);
|
|
$this->assertInternalType('string', $value);
|
|
}
|
|
|
|
public function testFilter()
|
|
{
|
|
$img = $this->manager()->make('tests/images/trim.png');
|
|
$img->filter(new \Intervention\Image\Filters\DemoFilter(10));
|
|
$this->assertColorAtPosition('#818181', $img, 0, 0);
|
|
$this->assertColorAtPosition('#939393', $img, 18, 18);
|
|
$this->assertColorAtPosition('#939393', $img, 18, 18);
|
|
$this->assertColorAtPosition('#adadad', $img, 25, 25);
|
|
$this->assertColorAtPosition('#939393', $img, 35, 35);
|
|
}
|
|
|
|
private function assertColorAtPosition($color, $img, $x, $y)
|
|
{
|
|
$pick = $img->pickColor($x, $y, 'hex');
|
|
$this->assertEquals($color, $pick);
|
|
$this->assertInstanceOf('Intervention\Image\Image', $img);
|
|
}
|
|
|
|
private function assertTransparentPosition($img, $x, $y, $transparent = 0)
|
|
{
|
|
// background should be transparent
|
|
$color = $img->pickColor($x, $y, 'array');
|
|
$this->assertEquals($transparent, $color[3]); // alpha channel
|
|
}
|
|
|
|
private function manager()
|
|
{
|
|
$manager = new \Intervention\Image\ImageManager;
|
|
$manager->config->set('image::driver', 'gd');
|
|
|
|
return $manager;
|
|
}
|
|
}
|