Php/docs/imagickdraw.affine
ImagickDraw::affine
(PECL imagick 2, PECL imagick 3)
ImagickDraw::affine — Adjusts the current affine transformation matrix
说明
public ImagickDraw::affine
( array $affine
) : bool
Warning 本函数还未编写文档,仅有参数列表。
Adjusts the current affine transformation matrix with the specified affine transformation matrix.
参数
affine
- Affine matrix parameters
返回值
没有返回值。
范例
Example #1 ImagickDraw::affine()
<?phpfunction affine($strokeColor, $fillColor, $backgroundColor) { $draw = new \ImagickDraw(); $draw->setStrokeWidth(1); $draw->setStrokeOpacity(1); $draw->setStrokeColor($strokeColor); $draw->setFillColor($fillColor); $draw->setStrokeWidth(2); $PI = 3.141592653589794; $angle = 60 * $PI / 360; //Scale the drawing co-ordinates. $affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0); //Shear the drawing co-ordinates. $affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0); //Rotate the drawing co-ordinates. The shear affine matrix //produces incorrectly scaled drawings. $affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,); //Translate (offset) the drawing $affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30); //The identiy affine matrix $affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0); $examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,]; $count = 0; foreach ($examples as $example) { $draw->push(); $draw->translate(($count % 2) * 250, intval($count / 2) * 250); $draw->translate(100, 100); $draw->affine($example); $draw->rectangle(-50, -50, 50, 50); $draw->pop(); $count++; } //Create an image object which the draw commands can be rendered into $image = new \Imagick(); $image->newImage(500, 750, $backgroundColor); $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();}?>