function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) { $draw = new \ImagickDraw(); $draw->setStrokeColor($strokeColor); $draw->setFillColor($fillColor); $draw->setStrokeWidth(25); $lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE]; $offset = 0; foreach ($lineTypes as $lineType) { $draw->setStrokeLineCap($lineType); $draw->line(50 + $offset, 50, 50 + $offset, 250); $offset += 50; } $imagick = new \Imagick(); $imagick->newImage(300, 300, $backgroundColor); $imagick->setImageFormat("png"); $imagick->drawImage($draw); header("Content-Type: image/png"); echo $imagick->getImageBlob(); }
public function brushpng($color, $size, $brushpath) { $info = $this->_handle->getImageGeometry(); $image = new \Imagick(); $image->newImage($info["width"], $info["height"], "transparent", "png"); //$image->setImageFormat("png"); $draw = new \ImagickDraw(); $pixel = new \ImagickPixel(); $pixel->setColor("transparent"); $draw->setFillColor($pixel); $pixel->setColor($color); $draw->setStrokeColor($pixel); $draw->setStrokeWidth($size); $draw->setStrokeLineCap(\imagick::LINECAP_ROUND); $draw->setStrokeLineJoin(\imagick::LINEJOIN_ROUND); $draw->polyline($brushpath); $image->drawImage($draw); $pixel->destroy(); $draw->destroy(); $this->_handle = $image; }
printf("%.2f\n", $draw->getFillOpacity()); $draw->setFillRule(Imagick::FILLRULE_NONZERO); var_dump($draw->getClipRule() === Imagick::FILLRULE_NONZERO); // gravity $draw->setGravity(Imagick::GRAVITY_SOUTHEAST); var_dump($draw->getGravity() === Imagick::GRAVITY_SOUTHEAST); // stroke $draw->setStrokeAntialias(false); var_dump($draw->getStrokeAntialias()); $draw->setStrokeColor(new ImagickPixel('#F02B88')); var_dump($draw->getStrokeColor()->getColor()); $draw->setStrokeDashArray(array(1, 2, 3)); var_dump($draw->getStrokeDashArray()); $draw->setStrokeDashOffset(-1); var_dump($draw->getStrokeDashOffset()); $draw->setStrokeLineCap(Imagick::LINECAP_SQUARE); var_dump($draw->getStrokeLineCap() === Imagick::LINECAP_SQUARE); $draw->setStrokeLineJoin(Imagick::LINEJOIN_BEVEL); var_dump($draw->getStrokeLineJoin() === Imagick::LINEJOIN_BEVEL); $draw->setStrokeMiterLimit(3); var_dump($draw->getStrokeMiterLimit()); $draw->setStrokeOpacity(0.9); printf("%.2f\n", $draw->getStrokeOpacity()); $draw->setStrokeWidth(1.2); printf("%.2f\n", $draw->getStrokeWidth()); // text $draw->setTextAlignment(Imagick::ALIGN_CENTER); var_dump($draw->getTextAlignment() === Imagick::ALIGN_CENTER); $draw->setTextAntialias(false); var_dump($draw->getTextAntialias()); $draw->setTextDecoration(Imagick::DECORATION_LINETROUGH);