diff --git a/Auto-Image.js b/Auto-Image.js
index 36cfba3..2e870e5 100644
--- a/Auto-Image.js
+++ b/Auto-Image.js
@@ -13,6 +13,10 @@
PAINTING_SPEED_ENABLED: false,
AUTO_CAPTCHA_ENABLED: false, // Disabled by default
COOLDOWN_CHARGE_THRESHOLD: 1, // Default wait threshold
+ OVERLAY: {
+ OPACITY_DEFAULT: 0.6,
+ BLUE_MARBLE_DEFAULT: false,
+ },
// --- START: Color data from colour-converter.js ---
COLOR_PALETTE: [
[0,0,0],[60,60,60],[120,120,120],[170,170,170],[210,210,210],[255,255,255],
@@ -351,6 +355,8 @@
language: "en",
paintingSpeed: CONFIG.PAINTING_SPEED.DEFAULT, // pixels per second
cooldownChargeThreshold: CONFIG.COOLDOWN_CHARGE_THRESHOLD,
+ overlayOpacity: CONFIG.OVERLAY.OPACITY_DEFAULT,
+ blueMarbleEnabled: CONFIG.OVERLAY.BLUE_MARBLE_DEFAULT,
}
// Placeholder for the resize preview update function
@@ -442,6 +448,28 @@
chunkCtx.drawImage(this.imageBitmap, sX, sY, sW, sH, dX, dY, sW, sH);
+ // --- NEW: BLUE MARBLE EFFECT ---
+ if (state.blueMarbleEnabled) {
+ const imageData = chunkCtx.getImageData(0, 0, this.tileSize, this.tileSize);
+ const data = imageData.data;
+ for (let pixelY = 0; pixelY < this.tileSize; pixelY++) {
+ for (let pixelX = 0; pixelX < this.tileSize; pixelX++) {
+ const canvasX = pixelX;
+ const canvasY = pixelY;
+ const imageX = canvasX - dX;
+ const imageY = canvasY - dY;
+
+ if ((imageX + imageY) % 2 === 0) {
+ const index = (canvasY * this.tileSize + canvasX) * 4;
+ if (data[index + 3] > 0) {
+ data[index + 3] = 0;
+ }
+ }
+ }
+ }
+ chunkCtx.putImageData(imageData, 0, 0);
+ }
+
const chunkBitmap = await chunkCanvas.transferToImageBitmap();
this.chunkedTiles.set(tileKey, chunkBitmap);
}
@@ -475,7 +503,7 @@
ctx.drawImage(originalTileBitmap, 0, 0);
// Set opacity and draw our solid overlay chunk on top
- ctx.globalAlpha = 0.6;
+ ctx.globalAlpha = state.overlayOpacity;
ctx.drawImage(chunkBitmap, 0, 0);
finalBlob = await canvas.convertToBlob({ type: 'image/png' });
@@ -2666,6 +2694,32 @@ window.addEventListener('message', (event) => {
+
+
+
+
+
+
+
+
Overlay Opacity
+
${Math.round(state.overlayOpacity * 100)}%
+
+
+
+
+
+
+
+