Spaces:
Sleeping
Sleeping
Update app/core/shadowGenerator.js
Browse files- app/core/shadowGenerator.js +17 -6
app/core/shadowGenerator.js
CHANGED
|
@@ -65,16 +65,27 @@ async function generateShadow(imageBuffer, options = {}) {
|
|
| 65 |
}
|
| 66 |
}
|
| 67 |
|
| 68 |
-
// ---------------- Final canvas size = original size + padding ----------------
|
| 69 |
-
const canvasW = scaledW + extraLeft + extraRight;
|
| 70 |
-
const canvasH = scaledH + extraTop + extraBottom;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
const canvas = createCanvas(canvasW, canvasH);
|
| 72 |
const ctx = canvas.getContext('2d');
|
| 73 |
ctx.clearRect(0, 0, canvasW, canvasH);
|
| 74 |
|
| 75 |
-
//
|
| 76 |
-
const baseX =
|
| 77 |
-
const baseY =
|
| 78 |
|
| 79 |
// ---------------- Draw shadow ----------------
|
| 80 |
switch (type) {
|
|
|
|
| 65 |
}
|
| 66 |
}
|
| 67 |
|
| 68 |
+
// // ---------------- Final canvas size = original size + padding ----------------
|
| 69 |
+
// const canvasW = scaledW + extraLeft + extraRight;
|
| 70 |
+
// const canvasH = scaledH + extraTop + extraBottom;
|
| 71 |
+
// const canvas = createCanvas(canvasW, canvasH);
|
| 72 |
+
// const ctx = canvas.getContext('2d');
|
| 73 |
+
// ctx.clearRect(0, 0, canvasW, canvasH);
|
| 74 |
+
|
| 75 |
+
// // ---------------- Base position ----------------
|
| 76 |
+
// const baseX = extraLeft + scaledW / 2; // center of object
|
| 77 |
+
// const baseY = extraTop + scaledH; // bottom of object
|
| 78 |
+
const safePad = Math.max(blur * 4, 300); // ensures enough room for long shadows
|
| 79 |
+
|
| 80 |
+
const canvasW = scaledW + safePad * 2;
|
| 81 |
+
const canvasH = scaledH + safePad * 2;
|
| 82 |
const canvas = createCanvas(canvasW, canvasH);
|
| 83 |
const ctx = canvas.getContext('2d');
|
| 84 |
ctx.clearRect(0, 0, canvasW, canvasH);
|
| 85 |
|
| 86 |
+
// Position the image at the center-bottom area (natural shadow placement)
|
| 87 |
+
const baseX = canvasW / 2;
|
| 88 |
+
const baseY = canvasH / 2 + scaledH / 2;
|
| 89 |
|
| 90 |
// ---------------- Draw shadow ----------------
|
| 91 |
switch (type) {
|