/** * @param ImageInterface $image * @return ImageInterface */ public function generateThumb(ImageInterface $image, $width, $height) { $background = isset($this->options["background"]) ? $this->options["background"] : null; $fitSize = isset($this->options["fitSize"]) ? $this->options["fitSize"] : true; $sizeBox = new Box($width, $height); $thumbMode = ImageInterface::THUMBNAIL_INSET; $thumb = $image->thumbnail($sizeBox, $thumbMode); // fill the area if ($fitSize) { $palette = new RGB(); if (!$background || $background == "transparent") { $backgroundColor = $palette->color("fff", 1); } else { $backgroundColor = $palette->color($background); } // source http://harikt.com/blog/2012/12/17/resize-image-keeping-aspect-ratio-in-imagine/ $realThumb = Image::create($sizeBox, $backgroundColor); $sizeR = $thumb->getSize(); $widthR = $sizeR->getWidth(); $heightR = $sizeR->getHeight(); $startX = $startY = 0; if ($widthR < $width) { $startX = ($width - $widthR) / 2; } if ($heightR < $height) { $startY = ($height - $heightR) / 2; } $realThumb->paste($thumb, new Point($startX, $startY)); } else { $realThumb = $thumb; } return $realThumb; }
public function findPicture($name) { return Image::open($this->pathProtectorProtect($name)); }