/** * Handle image manipulation. * * @param \Imagine\Image\ImageInterface $image * @param array $data * * @return \Imagine\Image\ImageInterface */ protected function handleImageManipulation(ImageInterface $image, array $data) { $width = $data['width']; $height = $data['height']; if (isset($data['dimension'])) { $width = $height = $data['dimension']; } return $image->resize(new Box($width, $height), $data['filter']); }
/** * Set article rendition * * @param int $articleNumber * @param Newscoop\Image\Rendition $rendition * @param Newscoop\Image\ImageInterface $image * @param string $imageSpecs * @return Newscoop\Image\ArticleRendition */ public function setArticleRendition($articleNumber, Rendition $rendition, ImageInterface $image, $imageSpecs = null) { if ($image->getWidth() < $rendition->getWidth() || $image->getHeight() < $rendition->getHeight()) { throw new \InvalidArgumentException("Image too small."); } $old = $this->getArticleRendition($articleNumber, $rendition); if ($old !== null) { $this->orm->remove($old); $this->orm->flush(); } $articleRendition = new ArticleRendition($articleNumber, $rendition, $image, $imageSpecs); $this->orm->persist($articleRendition); $this->orm->flush($articleRendition); return $articleRendition; }
/** * @param \Imagick $imagick * @return ImageInterface */ public function ImagickToImage(\Imagick $imagick, ImageInterface $oldImage, $newPath, $newName, $newImageSize) { $image = new Image(); $image->setSize(new Size($imagick->getImageWidth(), $imagick->getImageHeight())); $image->setName($newName); $image->setPath($newPath); $image->setExtension($oldImage->getExtension()); $image->setNameKey($oldImage->getNameKey()); $image->setOriginalName($oldImage->getOriginalName()); $image->setType($oldImage->getType()); $image->setImageSize($newImageSize); return $image; }
/** * 图像添加文字 * @param string $text 添加的文字 * @param string $font 字体路径 * @param integer $size 字号 * @param string $color 文字颜色 * @param integer $locate 文字写入位置 * @param integer $offset 文字相对当前位置的偏移量 * @param integer $angle 文字倾斜角度 * @return Image 当前图片处理库对象 */ public function text($text, $font, $size, $color = '#00000000', $locate = self::IMAGE_WATER_SOUTHEAST, $offset = 0, $angle = 0) { $this->img->text($text, $font, $size, $color, $locate, $offset, $angle); return $this; }