1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
--TEST--
Test Tutorial, deconstructGif
--SKIPIF--
<?php
require_once(dirname(__FILE__) . '/skipif.inc');
checkClassMethods("GmagickDraw", array('circle', 'translate'));
?>
--XFAIL--
GraphicMagick has multiple issues with 'image counts'. It appears to be confused how many images are in the list.
--FILE--
<?php
$aniGif = new \Gmagick();
$aniGif->setFormat("gif");
$circleRadius = 20;
$imageFrames = 6;
$imageSize = 200;
$background = new \Gmagick();
$background->newImage($imageSize, $imageSize, "gray");
$blackWhite = new \Gmagick();
$blackWhite->newImage($imageSize, $imageSize, "white");
$backgroundPalette = clone $background;
$backgroundPalette->quantizeImage(240, \Gmagick::COLORSPACE_RGB, 8, false, false);
$blackWhitePalette = clone $blackWhite;
$blackWhitePalette->quantizeImage(16, \Gmagick::COLORSPACE_RGB, 8, false, false);
$backgroundPalette->addimage($blackWhitePalette);
/*
for($count=0 ; $count<$imageFrames ; $count++) {
echo "Frame: ".$count."\n";
$drawing = new \GmagickDraw();
$drawing->setFillColor('white');
$drawing->setStrokeColor('rgba(64, 64, 64, 0.8)');
$strokeWidth = 4;
$drawing->setStrokeWidth($strokeWidth);
$distanceToMove = $imageSize + (($circleRadius + $strokeWidth) * 2);
$offset = ($distanceToMove * $count / ($imageFrames -1)) - ($circleRadius + $strokeWidth);
$drawing->translate(
$offset,
($imageSize / 2) + ($imageSize / 3 * cos(20 * $count / $imageFrames))
);
$drawing->circle(0, 0, $circleRadius, 0);
$frame = clone $background;
$frame->drawimage($drawing);
$frame->setImageDelay(10);
$frame = new Gmagick();
$frame->newimage( int $width , int $height , string $background [, string $format ] )
$aniGif->addImage($frame);
}
*/
$colors = array(
"Red",
"Orange",
"Yellow",
"Green",
"Indigo",
"Violet",
);
foreach ($colors as $color) {
$frame = new Gmagick();
$frame->newimage(100, 100, $color);
$aniGif->addImage($frame);
}
$aniGif->setImageFormat('gif');
//Even this fails.
//$aniGif->writeImage("./testgif.gif");
$aniGif = $aniGif->deconstructImages();
$bytes = $aniGif->getImagesBlob();
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
echo "Ok";
?>
--EXPECTF--
Frame: 0
Frame: 1
Frame: 2
Frame: 3
Frame: 4
Frame: 5
Ok
|