ImagickDraw::affine
(PECL imagick 2.0.0)
ImagickDraw::affine — Adjusts the current affine transformation matrix
Description
bool ImagickDraw::affine ( array $affine )
Warning
This function is currently not documented; only its argument list is available.
Adjusts the current affine transformation matrix with the specified affine transformation matrix.
Parameters
affine
Affine matrix parameters
Return Values
No value is returned.
Examples
Example #1 ImagickDraw::affine()
<?php
function?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();
}
?>
← ImagickDraw
ImagickDraw::annotation →
? 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com