1--TEST-- 2Test Imagick, evaluateImage 3--SKIPIF-- 4<?php 5$imageMagickRequiredVersion=0x675; 6require_once(dirname(__FILE__) . '/skipif.inc'); 7checkFormatPresent('png'); 8?> 9--FILE-- 10<?php 11 12$evaluateType = 1; 13$firstTerm = 0.5; 14$gradientStartColor = 'black'; 15$gradientEndColor = 'white'; 16 17$evaluateTypes = array( 18 \Imagick::EVALUATE_ADD, 19 \Imagick::EVALUATE_AND, 20 \Imagick::EVALUATE_MAX, 21 \Imagick::EVALUATE_MIN, 22 \Imagick::EVALUATE_OR, 23 \Imagick::EVALUATE_SET, 24 \Imagick::EVALUATE_SUBTRACT, 25 \Imagick::EVALUATE_XOR, 26 \Imagick::EVALUATE_THRESHOLD, 27 \Imagick::EVALUATE_THRESHOLDBLACK, 28 \Imagick::EVALUATE_THRESHOLDWHITE, 29 \Imagick::EVALUATE_ADDMODULUS, 30 31 \Imagick::EVALUATE_DIVIDE, 32 \Imagick::EVALUATE_MULTIPLY, 33 \Imagick::EVALUATE_RIGHTSHIFT, 34 \Imagick::EVALUATE_LEFTSHIFT, 35 \Imagick::EVALUATE_POW, 36 \Imagick::EVALUATE_LOG, 37 \Imagick::EVALUATE_GAUSSIANNOISE, 38 \Imagick::EVALUATE_IMPULSENOISE, 39 \Imagick::EVALUATE_LAPLACIANNOISE, 40 \Imagick::EVALUATE_MULTIPLICATIVENOISE, 41 \Imagick::EVALUATE_POISSONNOISE, 42 \Imagick::EVALUATE_UNIFORMNOISE, 43 \Imagick::EVALUATE_COSINE, 44 \Imagick::EVALUATE_SINE, 45); 46 47 48 49function evaluateImage($evaluateType, $firstTerm, $gradientStartColor, $gradientEndColor) { 50 $imagick = new \Imagick(); 51 $size = 400; 52 $imagick->newPseudoImage( 53 $size, 54 $size, 55 "gradient:$gradientStartColor-$gradientEndColor" 56 ); 57 58 $quantumScaledTypes = array( 59 \Imagick::EVALUATE_ADD, 60 \Imagick::EVALUATE_AND, 61 \Imagick::EVALUATE_MAX, 62 \Imagick::EVALUATE_MIN, 63 \Imagick::EVALUATE_OR, 64 \Imagick::EVALUATE_SET, 65 \Imagick::EVALUATE_SUBTRACT, 66 \Imagick::EVALUATE_XOR, 67 \Imagick::EVALUATE_THRESHOLD, 68 \Imagick::EVALUATE_THRESHOLDBLACK, 69 \Imagick::EVALUATE_THRESHOLDWHITE, 70 \Imagick::EVALUATE_ADDMODULUS, 71 ); 72 73 $unscaledTypes = array( 74 \Imagick::EVALUATE_DIVIDE, 75 \Imagick::EVALUATE_MULTIPLY, 76 \Imagick::EVALUATE_RIGHTSHIFT, 77 \Imagick::EVALUATE_LEFTSHIFT, 78 \Imagick::EVALUATE_POW, 79 \Imagick::EVALUATE_LOG, 80 \Imagick::EVALUATE_GAUSSIANNOISE, 81 \Imagick::EVALUATE_IMPULSENOISE, 82 \Imagick::EVALUATE_LAPLACIANNOISE, 83 \Imagick::EVALUATE_MULTIPLICATIVENOISE, 84 \Imagick::EVALUATE_POISSONNOISE, 85 \Imagick::EVALUATE_UNIFORMNOISE, 86 \Imagick::EVALUATE_COSINE, 87 \Imagick::EVALUATE_SINE, 88 ); 89 90 if (in_array($evaluateType, $unscaledTypes)) { 91 $imagick->evaluateimage($evaluateType, $firstTerm); 92 } 93 else if (in_array($evaluateType, $quantumScaledTypes)) { 94 $imagick->evaluateimage($evaluateType, $firstTerm * \Imagick::getQuantum()); 95 } 96 else { 97 throw new \Exception("Evaluation type $evaluateType is not listed as either scaled or unscaled"); 98 } 99 100 $imagick->setimageformat('png'); 101 $bytes = $imagick->getImageBlob(); 102 if (strlen($bytes) <= 0) { echo "Failed to generate image.";} 103} 104 105foreach ($evaluateTypes as $evaluateType) { 106 evaluateImage($evaluateType, $firstTerm, $gradientStartColor, $gradientEndColor) ; 107} 108echo "Ok"; 109?> 110--EXPECTF-- 111Ok