From 9ab310d2a34992c7c7b71a80f1facdccea987d07 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 26 Jul 2021 17:08:52 -0400 Subject: [PATCH] add rgb bands for thumb/preview as placeholder --- src/add/class.js | 5 +++++ src/mode/sla/export.js | 22 +++++++++++++++++++++- src/mode/sla/x_cxdlp.js | 31 +++++++++++++++++++++++++++---- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/src/add/class.js b/src/add/class.js index f9f099fe..260800be 100644 --- a/src/add/class.js +++ b/src/add/class.js @@ -31,6 +31,11 @@ self.ArrayWriter = class ArrayWriter { this.array[this.pos++] = v & 0xff; } + writeBytes(bytes) { + this.array.appendAll(bytes); + this.pos += bytes.length; + } + toBuffer() { return new Uint8ClampedArray(this.array).buffer; } diff --git a/src/mode/sla/export.js b/src/mode/sla/export.js index e95f3d79..c7454d14 100644 --- a/src/mode/sla/export.js +++ b/src/mode/sla/export.js @@ -107,12 +107,32 @@ } // generate thumb, preview1, preview2 + let thumb = []; + for (let x=0; x<116; x++) { + for (let y=0; y<116; y++) { + let val = 1 << Math.floor(x / 7.25); + thumb.push((val >> 8) & 0xff); + thumb.push(val & 0xff); + } + } + let preview1 = []; + for (let x=0; x<290; x++) { + for (let y=0; y<290; y++) { + let val = 1 << Math.floor(x / 18.125); + preview1.push((val >> 8) & 0xff); + preview1.push(val & 0xff); + } + } + let preview2 = preview1; let file = CXDLP.export({ settings, width, height, - slices + slices, + thumb, + preview1, + preview2 }); ondone({ width: width, diff --git a/src/mode/sla/x_cxdlp.js b/src/mode/sla/x_cxdlp.js index fcf542f1..5d116b3c 100644 --- a/src/mode/sla/x_cxdlp.js +++ b/src/mode/sla/x_cxdlp.js @@ -174,6 +174,29 @@ } } + output.write_bytes = function(array, len) { + if (!array) { + output.skip(len); + } else if (array.byteLength) { + if (len !== array.byteLength) { + throw `invalid array length: ${array.byteLength} != ${len}`; + } + // ArrayBuffer + let read = new DataReader(array); + for (let i=0; i