mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	added frame method
This commit is contained in:
		@ -115,7 +115,11 @@ class Image extends Component
 | 
			
		||||
	 */
 | 
			
		||||
	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
 | 
			
		||||
	/**
 | 
			
		||||
	 * Crops an image
 | 
			
		||||
	 * @param string $filename the full path to the image file
 | 
			
		||||
	 * @param int $width the crop width
 | 
			
		||||
	 * @param int $height the crop height
 | 
			
		||||
	 * @param int $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 $width the crop width
 | 
			
		||||
	 * @param integer $height the crop height
 | 
			
		||||
	 * @param integer $startX the x 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
 | 
			
		||||
	 */
 | 
			
		||||
	public function crop($filename, $width, $height, $startX = 0, $startY = 0)
 | 
			
		||||
@ -160,8 +164,8 @@ class Image extends Component
 | 
			
		||||
	 * Creates a thumbnail image. The function differs from [[\Imagine\Image\ImageInterface::thumbnail()]] function that
 | 
			
		||||
	 * it keeps the aspect ratio of the image.
 | 
			
		||||
	 * @param string $filename the full path to the image file
 | 
			
		||||
	 * @param int $width the width to create the thumbnail
 | 
			
		||||
	 * @param int $height the height in pixels to create the thumbnail
 | 
			
		||||
	 * @param integer $width the width to create the thumbnail
 | 
			
		||||
	 * @param integer $height the height in pixels to create the thumbnail
 | 
			
		||||
	 * @param string $mode
 | 
			
		||||
	 * @return \Imagine\Image\ImageInterface|ManipulatorInterface
 | 
			
		||||
	 */
 | 
			
		||||
@ -253,4 +257,29 @@ class Image extends Component
 | 
			
		||||
		$img->draw()->text($text, $font, new Point($fontPosX, $fontPosY), $fontAngle);
 | 
			
		||||
		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;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user