public function draw(OsuSignature $signature) { parent::draw($signature); if ($this->width != -1 || $this->height != -1) { $this->image->resizeImage($this->width == -1 ? $this->image->getImageWidth() : $this->width, $this->height == -1 ? $this->image->getImageHeight() : $this->height, 1, $this->filter); } $signature->getCanvas()->compositeImage($this->image, $this->composite, $this->x, $this->y); }
public function draw(OsuSignature $signature) { parent::draw($signature); $flag = $this->getFlag($signature->getUser()); if ($flag) { $flag->resizeImage($this->getWidth(), $this->getHeight(), Imagick::FILTER_CATROM, 1); if (isset($_GET['flagshadow'])) { $shadow = $flag->clone(); $shadow->setImageBackgroundColor(new ImagickPixel('black')); $shadow->shadowImage(50, 3, 0, 0); $signature->getCanvas()->compositeImage($shadow, \Imagick::COMPOSITE_DEFAULT, $this->x - 6, $this->y - 6); } if (isset($_GET['flagstroke'])) { $flagStroke = new \ImagickDraw(); $flagStroke->setFillColor("#FFFFFFEE"); $flagStroke->roundRectangle($this->x - 1, $this->y - 1, $this->x - 1 + ($this->getWidth() + 1), $this->y - 1 + ($this->getHeight() + 1), 1, 1); $signature->getCanvas()->drawImage($flagStroke); } $signature->getCanvas()->compositeImage($flag, Imagick::COMPOSITE_DEFAULT, $this->x, $this->y); } }
public function draw(OsuSignature $signature) { parent::draw($signature); $avatar = $this->getAvatar($signature->getUser()); if ($avatar) { $fitByWidth = $this->getWidth() / $avatar->getImageWidth() < $this->getHeight() / $avatar->getImageHeight() ? true : false; if ($fitByWidth) { $avatar->thumbnailImage($this->getWidth(), 0, false); } else { $avatar->thumbnailImage(0, $this->getHeight(), false); } $avatarXOffset = ($this->getWidth() - $avatar->getImageWidth()) / 2; $avatarYOffset = ($this->getHeight() - $avatar->getImageHeight()) / 2; /*$avatar->resizeImage( $this->getWidth(), $this->get Height(), 1 Imagick::FILTER_CATROM );*/ $avatarRounding = isset($_GET['avatarrounding']) ? max((int) $_GET['avatarrounding'], 0) : $this->rounding; $avatar->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET); $roundImage = new Imagick(); $roundImage->newPseudoImage($this->getWidth(), $this->getHeight(), 'canvas:transparent'); $roundMask = new ImagickDraw(); $roundMask->setFillColor(new ImagickPixel('black')); $roundMask->roundRectangle(0, 0, $avatar->getImageWidth() - 1, $avatar->getImageHeight() - 1, $avatarRounding, $avatarRounding); $roundImage->drawImage($roundMask); $roundImage->setImageFormat('png'); $avatar->compositeImage($roundImage, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA); $signature->getCanvas()->compositeImage($avatar, Imagick::COMPOSITE_DEFAULT, $this->x + $avatarXOffset, $this->y + $avatarYOffset); } }