This commit is contained in:
Lurkars 2021-12-16 09:34:39 +01:00
parent 38d874a3dc
commit 1e25aa3bcd
4 changed files with 1588 additions and 798 deletions

View File

@ -93,36 +93,37 @@
if (!data[seg]) { if (!data[seg]) {
data[seg] = new Array(); data[seg] = new Array();
} }
data[seg][led] = canvas_context.getImageData(x, y, 1, 1).data; let led_index = num_leds - led - 1;
data[seg][led_index] = canvas_context.getImageData(x, y, 1, 1).data;
for (let i = 0; i < 3; i++) { for (let i = 0; i < 3; i++) {
data[seg][led][i] = data[seg][led][i] - (data[seg][led][i] % 32); data[seg][led_index][i] = data[seg][led_index][i] - (data[seg][led_index][i] % 32);
} }
let index = 4 * (x + y * canvas_out_elem.width); let index = 4 * (x + y * canvas_out_elem.width);
out_data.data[index] = data[seg][led][0]; out_data.data[index] = data[seg][led_index][0];
out_data.data[index + 1] = data[seg][led][1]; out_data.data[index + 1] = data[seg][led_index][1];
out_data.data[index + 2] = data[seg][led][2]; out_data.data[index + 2] = data[seg][led_index][2];
out_data.data[index + 3] = data[seg][led][3]; out_data.data[index + 3] = data[seg][led_index][3];
index = 4 * ((seg * 2) + (num_leds - led) * num_segments * 2); index = 4 * ((seg * 2) + (num_leds - led_index) * num_segments * 2);
out_data2.data[index] = data[seg][led][0]; out_data2.data[index] = data[seg][led_index][0];
out_data2.data[index + 1] = data[seg][led][1]; out_data2.data[index + 1] = data[seg][led_index][1];
out_data2.data[index + 2] = data[seg][led][2]; out_data2.data[index + 2] = data[seg][led_index][2];
out_data2.data[index + 3] = data[seg][led][3]; out_data2.data[index + 3] = data[seg][led_index][3];
let found = -1; let found = -1;
for (color = 0; color < color_palette.length; color++) { for (color = 0; color < color_palette.length; color++) {
if (color_palette[color][0] == data[seg][led][0] && color_palette[color][1] == data[seg][led][1] && color_palette[color][2] == data[seg][led][2]) { if (color_palette[color][0] == data[seg][led_index][0] && color_palette[color][1] == data[seg][led_index][1] && color_palette[color][2] == data[seg][led_index][2]) {
found = color; found = color;
break; break;
} }
} }
if (found < 0) { if (found < 0) {
color_palette[color_palette.length] = data[seg][led]; color_palette[color_palette.length] = data[seg][led_index];
found = 0; found = 0;
} }
data[seg][led] = found; data[seg][led_index] = found;
} }
} }
canvas_out_context.putImageData(out_data, 0, 0); canvas_out_context.putImageData(out_data, 0, 0);

View File

@ -10,6 +10,8 @@
// add images here created with bikewheel.html image generator, scroll down and add data to available images // add images here created with bikewheel.html image generator, scroll down and add data to available images
#define LED_COUNT 26 // how many LEDs on one stripe
const PROGMEM uint8_t test_small_png_palette[][3] = { const PROGMEM uint8_t test_small_png_palette[][3] = {
{0x60, 0x60, 0x60}, // 0x00 {0x60, 0x60, 0x60}, // 0x00
{0x00, 0x00, 0x00}, // 0x01 {0x00, 0x00, 0x00}, // 0x01

1626
images_2.h

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
// limitations under the License. // limitations under the License.
// set to true if you want to use NEOPIXEL (3 pins) instead of APA102 (4 pins) // set to true if you want to use NEOPIXEL (3 pins) instead of APA102 (4 pins)
#define NEOPIXEL false #define NEOPIXEL true
// set to true for image test modus, this will change the segments every 1/2 second // set to true for image test modus, this will change the segments every 1/2 second
#define TEST_STRIPES false #define TEST_STRIPES false
@ -28,8 +28,7 @@
#define ROUND_COUNT 1 // how many rounds to take time (minimum 1) #define ROUND_COUNT 1 // how many rounds to take time (minimum 1)
#define NUM_SEGMENTS 360 // how much segements to divide image (gives an angle precision of 360 / NUM_SEGMENTS) #define NUM_SEGMENTS 360 // how much segements to divide image (gives an angle precision of 360 / NUM_SEGMENTS)
#define LED_COUNT 26 // how many LEDs on one stripe #define LED_STRIPES 1 // how many LEDs stripes on wheel
#define LED_STRIPES 2 // how many LEDs stripes on wheel
#if ARDUINO_ARCH_ESP32 #if ARDUINO_ARCH_ESP32
#define LED_BUILTIN 22 #define LED_BUILTIN 22
@ -58,7 +57,7 @@ rgb_color color_buffer[LED_COUNT * LED_STRIPES]; // color buffer to write to
#endif #endif
float passed = 0; float passed = 0;
int current_image_index = 1; int current_image_index = 3;
uint8_t *current_palette; uint8_t *current_palette;
uint8_t *current_pixels; uint8_t *current_pixels;