File: gmagick-121_deconstructGif_basic.phpt

package info (click to toggle)
php-gmagick 2.0.6~rc1%2B%2B-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,660 kB
  • sloc: ansic: 6,890; php: 330; xml: 267; pascal: 5; makefile: 2
file content (100 lines) | stat: -rw-r--r-- 2,236 bytes parent folder | download | duplicates (5)
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