Server IP : 23.254.227.96 / Your IP : 216.73.216.41 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/self/root/usr/local/src/imagick/tests/ |
Upload File : |
--TEST-- Test Tutorial, edgeExtend --SKIPIF-- <?php $imageMagickRequiredVersion=0x675; require_once(dirname(__FILE__) . '/skipif.inc'); ?> --FILE-- <?php $virtualPixelType = 5; function edgeExtend($virtualPixelType) { $imagick = new \Imagick(); $imagick->newPseudoImage(640, 480, "magick:logo"); $imagick->setImageVirtualPixelMethod($virtualPixelType); $imagick->scaleimage(400, 300, true); $imagick->setbackgroundcolor('pink'); $desiredWidth = 600; $originalWidth = $imagick->getImageWidth(); //Make the image be the desired width. $imagick->sampleimage($desiredWidth, $imagick->getImageHeight()); //Now scale, rotate, translate (aka affine project) it //to be how you want $points = array(//The x scaling factor is 0.5 when the desired width is double //the source width ($originalWidth / $desiredWidth), 0, //Don't scale vertically 0, 1, //Offset the image so that it's in the centre ($desiredWidth - $originalWidth) / 2, 0); $imagick->distortImage(\Imagick::DISTORTION_AFFINEPROJECTION, $points, false); $bytes = $imagick->getImageBlob(); if (strlen($bytes) <= 0) { echo "Failed to generate image.";} //Fyi it may be easier to think of the affine transform by //how it works for a rotation: //$affineRotate = array( // "sx" => cos($angle), // "sy" => cos($angle), // "rx" => sin($angle), // "ry" => -sin($angle), // "tx" => 0, // "ty" => 0, //); } edgeExtend($virtualPixelType) ; echo "Ok"; ?> --EXPECTF-- Ok