示例#1
0
 function renderImage3()
 {
     //dupe of two ?
     $draw = new \ImagickDraw();
     $strokeColor = new \ImagickPixel($this->strokeColor);
     $fillColor = new \ImagickPixel($this->fillColor);
     $draw->setStrokeWidth(1);
     $draw->setStrokeColor($strokeColor);
     $draw->setFillColor($fillColor);
     $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];
     $points = 11;
     $size = 150;
     $draw->translate(175, 160);
     for ($x = 0; $x < 2; $x++) {
         //$pointsArray = array();
         $draw->setFillRule($fillRules[$x]);
         $draw->pathStart();
         for ($n = 0; $n < $points * 2; $n++) {
             if ($n >= $points) {
                 $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
             } else {
                 $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
             }
             $positionX = $size * sin($angle);
             $positionY = $size * cos($angle);
             if ($n == 0) {
                 $draw->pathMoveToAbsolute($positionX, $positionY);
             } else {
                 $draw->pathLineToAbsolute($positionX, $positionY);
             }
         }
         $draw->pathClose();
         $draw->pathFinish();
         $draw->translate(325, 0);
     }
     //Create an image object which the draw commands can be rendered into
     $image = new \Imagick();
     //$image->newImage(700, 320, $this->backgroundColor);
     $image->newImage(700, 320, "#eee");
     $image->setImageFormat("png");
     //Render the draw commands in the ImagickDraw object
     //into the image.
     $image->drawImage($draw);
     //Send the image to the browser
     header("Content-Type: image/png");
     echo $image->getImageBlob();
 }
示例#2
0
function setFillRule($fillColor, $strokeColor, $backgroundColor)
{
    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];
    $points = 11;
    $size = 150;
    $draw->translate(175, 160);
    for ($x = 0; $x < 2; $x++) {
        $draw->setFillRule($fillRules[$x]);
        $draw->pathStart();
        for ($n = 0; $n < $points * 2; $n++) {
            if ($n >= $points) {
                $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            } else {
                $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }
            $positionX = $size * sin($angle);
            $positionY = $size * cos($angle);
            if ($n == 0) {
                $draw->pathMoveToAbsolute($positionX, $positionY);
            } else {
                $draw->pathLineToAbsolute($positionX, $positionY);
            }
        }
        $draw->pathClose();
        $draw->pathFinish();
        $draw->translate(325, 0);
    }
    $image = new \Imagick();
    $image->newImage(700, 320, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}
示例#3
0
<?php

$draw = new ImagickDraw();
// clip
$draw->setClipRule(Imagick::FILLRULE_EVENODD);
var_dump($draw->getClipRule() === Imagick::FILLRULE_EVENODD);
$draw->setClipUnits(10);
var_dump($draw->getClipUnits());
// fill
$draw->setFillColor('yellow');
var_dump($draw->getFillColor()->getColor());
$draw->setFillOpacity(0.5);
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);