Example #1
0
 /**
  * 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;
 }
Example #2
0
 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());
 }