Compare commits
45 Commits
main
...
typescript
| Author | SHA1 | Date |
|---|---|---|
|
|
6871748164 | 1 month ago |
|
|
a6fbd31320 | 1 month ago |
|
|
96852c9105 | 1 month ago |
|
|
aec5200f6f | 1 month ago |
|
|
c3ab9cd1b8 | 1 month ago |
|
|
d34b6f3035 | 1 month ago |
|
|
480b10f764 | 1 month ago |
|
|
5071016ded | 1 month ago |
|
|
d1878f491d | 1 month ago |
|
|
1cbaee1dd2 | 1 month ago |
|
|
86a51d3cf9 | 1 month ago |
|
|
e44da7cb20 | 1 month ago |
|
|
e992a4c8e4 | 1 month ago |
|
|
f543016595 | 1 month ago |
|
|
213ead59b2 | 1 month ago |
|
|
9a3e435cfc | 1 month ago |
|
|
3d7daf8b74 | 1 month ago |
|
|
97a1feb06e | 1 month ago |
|
|
79fa6e2fc8 | 1 month ago |
|
|
211480d61f | 1 month ago |
|
|
9cdd672342 | 1 month ago |
|
|
3e497f512b | 1 month ago |
|
|
9a1d9c1d6a | 1 month ago |
|
|
6e169930f7 | 1 month ago |
|
|
28667774dd | 1 month ago |
|
|
178243a9cc | 1 month ago |
|
|
9e31555d6f | 1 month ago |
|
|
1fb38e3e0d | 1 month ago |
|
|
1831ef6f95 | 1 month ago |
|
|
d6c712dfc3 | 1 month ago |
|
|
f674459af9 | 1 month ago |
|
|
cca5be7e23 | 1 month ago |
|
|
ef63b862ae | 1 month ago |
|
|
5bce254f65 | 1 month ago |
|
|
de45362fe4 | 1 month ago |
|
|
c4bd427eff | 1 month ago |
|
|
e8f5d5e451 | 1 month ago |
|
|
71ade5290a | 1 month ago |
|
|
958ebdf4f0 | 1 month ago |
|
|
ef07183a66 | 1 month ago |
|
|
15b94d51f9 | 1 month ago |
|
|
7316a9d3a8 | 1 month ago |
|
|
a20213b6e8 | 1 month ago |
|
|
4c90223474 | 1 month ago |
|
|
0db0e11815 | 1 month ago |
|
Before Width: | Height: | Size: 403 B After Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 408 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 106 KiB |
@ -1,58 +0,0 @@ |
||||
<?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); |
||||
} |
||||
|
||||
?> |
||||
@ -1,68 +0,0 @@ |
||||
@media (max-width: 640px) { |
||||
#topbar { |
||||
overflow-x: auto; |
||||
overflow-y: hidden; |
||||
scrollbar-width: none; |
||||
-webkit-overflow-scrolling: touch; |
||||
gap: 6px; |
||||
padding: 0 8px; |
||||
} |
||||
|
||||
#topbar::-webkit-scrollbar { |
||||
display: none; |
||||
} |
||||
|
||||
#topbar>* { |
||||
flex-shrink: 0; |
||||
} |
||||
|
||||
#topbar .tb-btn { |
||||
font-size: 0; |
||||
gap: 0; |
||||
padding: 3px 8px; |
||||
} |
||||
|
||||
#topbar .tb-btn svg { |
||||
width: 15px; |
||||
height: 15px; |
||||
} |
||||
|
||||
#topbar #theme-toggle { |
||||
font-size: 11px; |
||||
} |
||||
|
||||
#topbar button[onclick="addSection()"] { |
||||
display: none; |
||||
} |
||||
|
||||
#mob-add-section { |
||||
display: flex; |
||||
} |
||||
|
||||
#topbar [style*="flex:1"] { |
||||
display: none; |
||||
} |
||||
|
||||
#main { |
||||
flex-direction: column; |
||||
overflow-y: auto; |
||||
} |
||||
|
||||
#left, |
||||
#right { |
||||
width: 100%; |
||||
border-right: none; |
||||
flex-shrink: 0; |
||||
} |
||||
|
||||
#left { |
||||
border-bottom: 1px solid var(--bd-inner); |
||||
padding: 10px; |
||||
gap: 8px; |
||||
} |
||||
|
||||
#display-box { |
||||
aspect-ratio: 2/1; |
||||
width: 100%; |
||||
} |
||||
} |
||||