You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.0 KiB
83 lines
3.0 KiB
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Busanzeiger Paint</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/omggif@1.0.10/omggif.min.js"></script>
|
|
<script src="alphabet-extended.js"></script>
|
|
<script src="binfmt.js"></script>
|
|
</head>
|
|
<body>
|
|
<h1>Busanzeiger Paint</h1>
|
|
|
|
<div id="modeToggle">
|
|
<label><input type="radio" name="mode" value="image" checked> Image Mode</label>
|
|
<label><input type="radio" name="mode" value="text"> Text Mode</label>
|
|
<label style="margin-left: 20px;"><input type="checkbox" id="animationCreation"> Animation Creation</label>
|
|
<label style="margin-left: 20px;">
|
|
Duration (seconds): <input type="number" id="animationDuration" min="0.1" max="60" step="0.1" value="3.0" style="width: 60px;">
|
|
<button id="revertDuration" title="Unlock and recalculate from frame count">↻</button>
|
|
</label>
|
|
</div>
|
|
|
|
<div id="dropzone">Drag and drop image(s) here or click to upload</div>
|
|
|
|
<div id="controls">
|
|
<input type="file" id="upload" accept="image/*" style="display:none;" />
|
|
<button id="invert">Invert</button>
|
|
<button id="dither">Dither: OFF</button>
|
|
<button id="export">Prepare Export</button>
|
|
<button id="downloadBinary">Download Binary</button>
|
|
<button id="draw">Draw</button>
|
|
<button id="erase">Erase</button>
|
|
<label>
|
|
Brush:
|
|
<select id="brushSize">
|
|
<option value="1" selected>1px</option>
|
|
<option value="2">2px</option>
|
|
<option value="4">4px</option>
|
|
<option value="6">6px</option>
|
|
</select>
|
|
</label>
|
|
<button id="reset">Reset</button>
|
|
</div>
|
|
|
|
<div id="frameControls" style="display: none; margin-top: 10px; display: flex; gap: 10px; align-items: center; justify-content: center;">
|
|
<button id="prevFrame">← Prev Frame</button>
|
|
<button id="playStop">▶ Play</button>
|
|
<span id="frameCounter"></span>
|
|
<button id="nextFrame">Next Frame →</button>
|
|
<button id="addEmptyFrame" style="display: none;">+ Empty Frame</button>
|
|
<button id="duplicateFrame" style="display: none;">+ Duplicate Frame</button>
|
|
<button id="deleteFrame" style="display: none;">🗑 Delete Frame</button>
|
|
</div>
|
|
|
|
<div id="textInputArea">
|
|
<label>Scrolling Text:<br>
|
|
<textarea id="scrollText" rows="4" cols="40"></textarea>
|
|
</label>
|
|
<label>Speed: <input type="number" id="scrollSpeed" min="0" max="63" value="4"></label>
|
|
<label><input type="checkbox" id="scrollRight"> Scroll Right</label>
|
|
<label><input type="checkbox" id="scrollWrap" checked> Wrap Around</label>
|
|
</div>
|
|
|
|
<div id="matrix"></div>
|
|
|
|
<form action="upload.php" method="post">
|
|
<textarea id="array_output" name="array_output" rows="4" cols="50"></textarea>
|
|
<textarea id="scrolls_output" name="scrolls" rows="4" cols="50" style="display:none;"></textarea>
|
|
<br>
|
|
Filename: <input type="text" id="fileName" name="fileName">
|
|
<br>
|
|
Passwort: <input type="password" id="password" name="password">
|
|
<button type="submit">Speichern</button>
|
|
</form>
|
|
|
|
<script src="app.js"></script>
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|