-
Notifications
You must be signed in to change notification settings - Fork 1
/
extract.php
42 lines (30 loc) · 871 Bytes
/
extract.php
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
<?php
require_once('GifFrameExtractor.php');
if(!isset($gifFilePath))
{
die("No gif path provided.");
}
if(!GifFrameExtractor\GifFrameExtractor::isAnimatedGif($gifFilePath))
{
die("File is not an animated gif.");
}
$gfe = new GifFrameExtractor\GifFrameExtractor();
$gfe->extract($gifFilePath);
$dimensions = $gfe->getFrameDimensions();
$width = $dimensions[0]['width'];
$height = $dimensions[0]['height'];
$frameCount = $gfe->getFrameNumber();
$tilesheet = imagecreate($width * $frameCount, $height);
$red = imagecolorallocate($tilesheet, 255, 0, 0);
imagecolortransparent($tilesheet, $red);
$x = 0;
$y = 0;
foreach ($gfe->getFrames() as $frame) {
$frame = $frame['image'];
imagecopy($tilesheet, $frame, $x, $y, 0, 0, $width, $height);
$x += $width;
}
header( "Content-type: image/png" );
imagepng($tilesheet);
imagedestroy($tilesheet);
?>