Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Api\Controllers;
- /**
- * undocumented class
- *
- * @package default
- * @author
- **/
- class ImageController extends ControllerBase
- {
- CONST IMAGE_WIDTH = 750;
- CONST IMAGE_HEIGHT = 420;
- /**
- * undocumented function summary
- *
- * Undocumented function long description
- *
- * @param type var Description
- * @return return type
- */
- public function generate_newsletterAction()
- {
- $text = $this->request->get('text');
- $leftImagickPlane = new \Imagick();
- $leftImagickPlane->newImage(self::IMAGE_WIDTH, self::IMAGE_HEIGHT, 'transparent');
- $leftImagickPlane->setImageFormat("png");
- $rightImagickPlane = new \Imagick();
- $rightImagickPlane->newImage(self::IMAGE_WIDTH, self::IMAGE_HEIGHT, 'transparent');
- $rightImagickPlane->setImageFormat("png");
- $colorOverlayPlane = new \Imagick();
- $colorOverlayPlane->newImage(self::IMAGE_WIDTH, self::IMAGE_HEIGHT, 'red');
- $colorOverlayPlane->setImageMatte(1);
- $colorOverlayPlane->setImageFormat("png");
- $colorOverlayPlane->setImageAlpha(0.4);
- $imagickClippingPlane = new \Imagick();
- $imagickClippingPlane->newImage(self::IMAGE_WIDTH, self::IMAGE_HEIGHT, 'transparent');
- $imagickClippingPlane->setImageFormat("png");
- $draw = new \ImagickDraw();
- $draw->setStrokeWidth(10);
- $draw->setStrokeOpacity(1);
- $draw->setStrokeColor("white");
- $draw->setFillColor("black");
- $draw->rotate(15);
- $draw->rectangle(0, self::IMAGE_WIDTH*0.3121*-1, self::IMAGE_WIDTH*0.75, self::IMAGE_HEIGHT*1.5);
- $imagickClippingPlane->drawImage($draw);
- $leftSideSize = [
- 0, 0, // offset x,y
- self::IMAGE_WIDTH*0.75,
- self::IMAGE_HEIGHT
- ];
- $rightSideSize = [
- self::IMAGE_WIDTH*0.5, 0,
- self::IMAGE_WIDTH*0.25,
- self::IMAGE_HEIGHT
- ];
- $leftImageImagick = new \Imagick();
- $leftImageImagick->readImage("https://static1.st8fm.com/en_US/img/si/750/131-car-fire-wide.jpg");
- $leftImageImagick->setImageMatte(1);
- $leftImageImagick->resizeImage($leftSideSize[1], $leftSideSize[2], \Imagick::FILTER_LANCZOS, 1);
- $leftImagickPlane->compositeImage($leftImageImagick, \Imagick::COMPOSITE_DEFAULT, 0, 0, \Imagick::CHANNEL_ALL);
- $leftImagickPlane->compositeImage($imagickClippingPlane, \Imagick::COMPOSITE_DSTIN, 0, 0);
- for($x = 0; $x < self::IMAGE_WIDTH; $x++) {
- for($y = 0; $y < self::IMAGE_HEIGHT; $y++) {
- $maskPixel = $imagickClippingPlane->getImagePixelColor($x, $y);
- $color = $maskPixel->getColor();
- if($color['r'] == 0 && $color['b'] == 0 && $color['g'] == 0) {
- $planePixel = $leftImagickPlane->getImagePixelColor($x, $y);
- $planePixel->setColor('transparent');
- }
- }
- }
- $rightImageImagick = new \Imagick();
- $rightImageImagick->readImage("https://images.financialexpress.com/2018/04/car-pti.jpg?w=660&h=440&imflag=true");
- $rightImagickPlane->compositeImage($rightImageImagick, \Imagick::COMPOSITE_DEFAULT, $rightSideSize[0], 0, \Imagick::CHANNEL_ALL);
- $rightImagickPlane->compositeImage($colorOverlayPlane, \Imagick::COMPOSITE_DEFAULT, 0, 0, \Imagick::CHANNEL_ALL);
- $rightImagickPlane->compositeImage($leftImagickPlane, \Imagick::COMPOSITE_DEFAULT, 0, 0, \Imagick::CHANNEL_ALL);
- header("Content-Type: image/png");
- echo $rightImagickPlane->getImageBlob();
- die();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement