File indexing completed on 2025-01-26 05:29:14

0001 <?php
0002 
0003 namespace Intervention\Image\Imagick\Commands;
0004 
0005 class InsertCommand extends \Intervention\Image\Commands\AbstractCommand
0006 {
0007     /**
0008      * Insert another image into given image
0009      *
0010      * @param  \Intervention\Image\Image $image
0011      * @return boolean
0012      */
0013     public function execute($image)
0014     {
0015         $source = $this->argument(0)->required()->value();
0016         $position = $this->argument(1)->type('string')->value();
0017         $x = $this->argument(2)->type('digit')->value(0);
0018         $y = $this->argument(3)->type('digit')->value(0);
0019 
0020         // build watermark
0021         $watermark = $image->getDriver()->init($source);
0022 
0023         // define insertion point
0024         $image_size = $image->getSize()->align($position, $x, $y);
0025         $watermark_size = $watermark->getSize()->align($position);
0026         $target = $image_size->relativePosition($watermark_size);
0027 
0028         // insert image at position
0029         return $image->getCore()->compositeImage($watermark->getCore(), \Imagick::COMPOSITE_DEFAULT, $target->x, $target->y);
0030     }
0031 }