parent
debce36336
commit
4f36b72f5c
@ -0,0 +1,58 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
include_once("monoformat_schema.php"); |
||||||
|
include_once("monoformat_structured.php"); |
||||||
|
|
||||||
|
if (count($argv) != 4) { |
||||||
|
fwrite(STDERR, "Usage: $argv[0] binfile index outprefix\n"); |
||||||
|
exit(1); |
||||||
|
} |
||||||
|
|
||||||
|
$binfile = $argv[1]; |
||||||
|
$index = (int) $argv[2]; |
||||||
|
$outprefix = $argv[3]; |
||||||
|
|
||||||
|
$file = monoformat\parseFile(file_get_contents($binfile)); |
||||||
|
$animations = []; |
||||||
|
foreach ($file->sections as $section) { |
||||||
|
for ($i = 0; $i < $section->elementCount(); ++$i) { |
||||||
|
$element = $section->elementAt($i); |
||||||
|
if ($element->elementType() == monoformat\ElementType::Animation) { |
||||||
|
array_push($animations, $element); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ($index < 0 || $index >= count($animations)) { |
||||||
|
$n = count($animations); |
||||||
|
$nm1 = $n - 1; |
||||||
|
fwrite(STDERR, "$argv[0]: the animation file contains $n animations, index $index is invalid (must be 0 .. $nm1)\n"); |
||||||
|
exit(2); |
||||||
|
} |
||||||
|
|
||||||
|
$animation = $animations[$index]; |
||||||
|
$height = $animation->height(); |
||||||
|
$width = $animation->width(); |
||||||
|
|
||||||
|
$nFrames = $animation->numberOfFrames(); |
||||||
|
for ($f = 0; $f < $nFrames; ++$f) { |
||||||
|
$outfile = sprintf("%s_%04d.png", $outprefix, $f); |
||||||
|
print("Writing $outfile...\n"); |
||||||
|
$input = $animation->image($f); |
||||||
|
$image = imagecreatetruecolor($width, $height); |
||||||
|
$bg = imagecolorallocate($image, 0, 0, 0); |
||||||
|
$fg = imagecolorallocate($image, 255, 255, 255); |
||||||
|
for ($y = 0; $y < $height; ++$y) { |
||||||
|
for ($x = 0; $x < $width; ++$x) { |
||||||
|
$i = $y * $width + $x; |
||||||
|
if ($input[$i]) { |
||||||
|
imagesetpixel($image, $x, $y, $fg); |
||||||
|
} else { |
||||||
|
imagesetpixel($image, $x, $y, $bg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
imagepng($image, $outfile); |
||||||
|
} |
||||||
|
|
||||||
|
?> |
||||||
Loading…
Reference in new issue