wow images

This commit is contained in:
2026-02-05 11:13:11 +01:00
parent 7136ae7385
commit 84a047f67b
4 changed files with 31 additions and 6 deletions
+15
View File
@@ -28,6 +28,12 @@ const char index_html[] PROGMEM = R"rawliteral(
<button class="button" onclick="showSavedPixels()">Show Saved Pixels</button> <button class="button" onclick="showSavedPixels()">Show Saved Pixels</button>
<button class="button" onclick="location.href='/upload-page'">Upload Image</button> <button class="button" onclick="location.href='/upload-page'">Upload Image</button>
<br> <br>
<div>
<label for="brightness">Brightness: </label>
<input type="range" id="brightness" min="0" max="100" value="100" onchange="updateBrightness()">
<span id="brightnessValue">100</span>
</div>
<br>
<textarea id="jsonInput" placeholder="Paste your JSON image data here..."></textarea> <textarea id="jsonInput" placeholder="Paste your JSON image data here..."></textarea>
<br> <br>
<button class="button" onclick="uploadAndDraw()">Upload and Draw</button> <button class="button" onclick="uploadAndDraw()">Upload and Draw</button>
@@ -46,6 +52,15 @@ const char index_html[] PROGMEM = R"rawliteral(
xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(jsonData); xhr.send(jsonData);
} }
function updateBrightness() {
var brightness = document.getElementById("brightness").value;
document.getElementById("brightnessValue").innerText = brightness;
var xhr = new XMLHttpRequest();
xhr.open("POST", "/brightness", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("value=" + brightness);
}
</script> </script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -133,13 +133,13 @@ void scrollAllScrollableTexts(bool split_scroll_mode = false)
} }
} }
void drawImageFromMemoryByIndex(unsigned char image_index, short pos_x, short pos_y, unsigned char dim_percentage = 0) void drawImageFromMemoryByIndex(unsigned char image_index, short pos_x, short pos_y, unsigned char brightness)
{ {
Image* img = &saved_images[image_index]; Image* img = &saved_images[image_index];
auto dimBy = [dim_percentage](unsigned char color) auto dimBy = [brightness](unsigned char color)
{ {
return color * (100 - dim_percentage) / 100; return color * brightness / 100;
}; };
for (unsigned char y = 0; y < img->height; y++) for (unsigned char y = 0; y < img->height; y++)
@@ -173,7 +173,7 @@ void loop()
if (saved_images[0].width > 0) if (saved_images[0].width > 0)
{ {
drawImageFromMemoryByIndex(0, 0, 0); drawImageFromMemoryByIndex(0, 0, 0, brightness);
} }
else else
{ {
+2 -1
View File
@@ -9,9 +9,10 @@ extern Image saved_images[MAX_IMAGES_SAVED];
extern unsigned char saved_images_count; extern unsigned char saved_images_count;
extern TextNode text_nodes[MAX_TEXT_NODES_COUNT]; extern TextNode text_nodes[MAX_TEXT_NODES_COUNT];
extern Cursor cursor; extern Cursor cursor;
extern unsigned char brightness;
void drawImageFromMemoryByIndex(unsigned char image_index, short pos_x, short pos_y, unsigned char dim_percentage = 0); void drawImageFromMemoryByIndex(unsigned char image_index, short pos_x, short pos_y, unsigned char brightness = 100);
void setPixel(short x, short y, uint32_t color); void setPixel(short x, short y, uint32_t color);
void start_server(); void start_server();
void handle_server(); void handle_server();
+10 -1
View File
@@ -7,6 +7,7 @@
const char* ssid = "PPIA"; const char* ssid = "PPIA";
const char* password = "pawelpdaldonejta"; const char* password = "pawelpdaldonejta";
unsigned char brightness = 100;
WebServer server(80); WebServer server(80);
@@ -16,6 +17,13 @@ size_t fileContent_len = 0;
String upload_error_message = ""; String upload_error_message = "";
void handleBrightness() {
if (server.hasArg("value")) {
brightness = server.arg("value").toInt();
}
server.send(200, "text/plain", "OK");
}
void handleRoot() void handleRoot()
{ {
server.send(200, "text/html", index_html); server.send(200, "text/html", index_html);
@@ -91,7 +99,7 @@ void handleBmpUpload() {
void handleShowSaved() void handleShowSaved()
{ {
pixels.clear(); pixels.clear();
drawImageFromMemoryByIndex(0, 0, 0, 100); drawImageFromMemoryByIndex(0, 0, 0, brightness);
pixels.show(); pixels.show();
server.send(200, "text/plain", "OK"); server.send(200, "text/plain", "OK");
} }
@@ -108,6 +116,7 @@ void start_server()
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
server.on("/", handleRoot); server.on("/", handleRoot);
server.on("/brightness", HTTP_POST, handleBrightness);
server.on("/show-saved", handleShowSaved); server.on("/show-saved", handleShowSaved);
server.on("/upload-page", HTTP_GET, handleUploadPage); server.on("/upload-page", HTTP_GET, handleUploadPage);
server.on("/upload-bmp", HTTP_POST, []() { server.on("/upload-bmp", HTTP_POST, []() {