/** * Import file into a new layer * * @param string $file * @param int $mode * @return \Phower\Image\Image * @throws InvalidArgumentException */ public function import($file, $mode = LayersStack::APPEND_TOP, $position = LayerInterface::POSITION_MIDDLE_CENTER) { if (!is_readable($file)) { throw new InvalidArgumentException('Unable to import source: ' . $file); } /* @var $adapter \Phower\Image\Adapter\AdapterInterface */ $callback = $this->getDefaultAdapter() . '::fromFile'; $adapter = call_user_func_array($callback, [$file]); $layer = new Layer($adapter); if (($this->width === null || $this->height === null) && $this->layers->count() === 0) { $this->width = $layer->getWidth(); $this->height = $layer->getHeight(); } else { $layer->align($this->width, $this->height, $position); } $this->layers->append($layer, $mode); return $this; }
public function testMoveDownMethodMovesCurrentLayerOnePositionDown() { $adapter = $this->getMockBuilder('Phower\\Image\\Adapter\\AdapterInterface')->getMock(); $layer1 = new Layer($adapter); $layer1->setName('Layer 1'); $layer2 = new Layer($adapter); $layer2->setName('Layer 2'); $layer3 = new Layer($adapter); $layer3->setName('Layer 3'); $layers = new LayersStack(); $layers->append($layer1)->append($layer2)->append($layer3); $this->assertEquals(0, $layers->key()); $this->assertEquals('Layer 3', $layers->current()->getName()); $layers->moveDown(); $this->assertEquals(1, $layers->key()); $this->assertEquals('Layer 3', $layers->current()->getName()); }