Commit 105a0bc4 by Antonio Ramirez

added frame method

parent 6e2e11c3
...@@ -115,7 +115,11 @@ class Image extends Component ...@@ -115,7 +115,11 @@ class Image extends Component
*/ */
public function getAvailableDrivers() public function getAvailableDrivers()
{ {
return [static::DRIVER_GD2, static::DRIVER_GMAGICK, static::DRIVER_IMAGICK]; static $drivers;
if ($drivers === null) {
$drivers = [static::DRIVER_GD2, static::DRIVER_GMAGICK, static::DRIVER_IMAGICK];
}
return $drivers;
} }
/** /**
...@@ -142,10 +146,10 @@ class Image extends Component ...@@ -142,10 +146,10 @@ class Image extends Component
/** /**
* Crops an image * Crops an image
* @param string $filename the full path to the image file * @param string $filename the full path to the image file
* @param int $width the crop width * @param integer $width the crop width
* @param int $height the crop height * @param integer $height the crop height
* @param int $startX the x starting point to crop from. Defaults to 0. * @param integer $startX the x starting point to crop from. Defaults to 0.
* @param int $startY the y starting point to crop from. Defaults to 0. * @param integer $startY the y starting point to crop from. Defaults to 0.
* @return \Imagine\Image\ManipulatorInterface * @return \Imagine\Image\ManipulatorInterface
*/ */
public function crop($filename, $width, $height, $startX = 0, $startY = 0) public function crop($filename, $width, $height, $startX = 0, $startY = 0)
...@@ -160,8 +164,8 @@ class Image extends Component ...@@ -160,8 +164,8 @@ class Image extends Component
* Creates a thumbnail image. The function differs from [[\Imagine\Image\ImageInterface::thumbnail()]] function that * Creates a thumbnail image. The function differs from [[\Imagine\Image\ImageInterface::thumbnail()]] function that
* it keeps the aspect ratio of the image. * it keeps the aspect ratio of the image.
* @param string $filename the full path to the image file * @param string $filename the full path to the image file
* @param int $width the width to create the thumbnail * @param integer $width the width to create the thumbnail
* @param int $height the height in pixels to create the thumbnail * @param integer $height the height in pixels to create the thumbnail
* @param string $mode * @param string $mode
* @return \Imagine\Image\ImageInterface|ManipulatorInterface * @return \Imagine\Image\ImageInterface|ManipulatorInterface
*/ */
...@@ -253,4 +257,29 @@ class Image extends Component ...@@ -253,4 +257,29 @@ class Image extends Component
$img->draw()->text($text, $font, new Point($fontPosX, $fontPosY), $fontAngle); $img->draw()->text($text, $font, new Point($fontPosX, $fontPosY), $fontAngle);
return $img; return $img;
} }
/**
* Adds a frame around of the image. Please note that the image will increase `$margin` x 2.
* @param string $filename the full path to the image file
* @param integer $margin the frame size to add around the image
* @param string $color the frame color
* @param integer $alpha
* @return \Imagine\Image\ImageInterface
*/
public function frame($filename, $margin, $color='000', $alpha = 100)
{
$img = $this->getImagine()->open($filename);
$size = $img->getSize();
$pasteTo = new Point($margin, $margin);
$padColor = new Color($color, $alpha);
$box = new Box($size->getWidth() + ceil($margin * 2), $size->getHeight() + ceil($margin * 2));
$image = $this->getImagine()->create( $box, $padColor);
$image->paste($img, $pasteTo);
return $image;
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment