← back to Crazy News Channel Shadowman
cartoon shorts: transparent SATIRE badge (no white box), kicker below badge, caption tucked under image (TK-12191)
89ae98f1ba558029149efab7acb4fb768696b771 · 2026-09-24 15:48:27 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Files touched
M scripts/cartoon-shorts/make-cartoon-shorts.mjs
Diff
commit 89ae98f1ba558029149efab7acb4fb768696b771
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 24 15:48:27 2026 -0700
cartoon shorts: transparent SATIRE badge (no white box), kicker below badge, caption tucked under image (TK-12191)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
scripts/cartoon-shorts/make-cartoon-shorts.mjs | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/scripts/cartoon-shorts/make-cartoon-shorts.mjs b/scripts/cartoon-shorts/make-cartoon-shorts.mjs
index bd7c627..b244be1 100644
--- a/scripts/cartoon-shorts/make-cartoon-shorts.mjs
+++ b/scripts/cartoon-shorts/make-cartoon-shorts.mjs
@@ -246,7 +246,7 @@ function stampSatireBadge(png) {
'(', '-size', '360x140', 'xc:none',
'-fill', HEX_RED, '-draw', 'roundrectangle 0,0,359,139,18,18',
'-fill', 'white', '-font', FONT, '-pointsize', '58', '-gravity', 'center', '-annotate', '0', 'SATIRE',
- '-rotate', '-8',
+ '-background', 'none', '-rotate', '-8',
')',
'-gravity', 'NorthEast', '-geometry', '+40+70', '-composite', png]);
}
@@ -277,7 +277,7 @@ function buildOpeningCard(dir, { title }) {
'(', '-size', '700x260', 'xc:none',
'-fill', HEX_RED, '-stroke', 'white', '-strokewidth', '6', '-draw', 'roundrectangle 0,0,699,259,26,26',
'-fill', 'white', '-stroke', 'none', '-font', FONT, '-pointsize', '110', '-gravity', 'center', '-annotate', '0', 'SATIRE',
- '-rotate', '-6',
+ '-background', 'none', '-rotate', '-6',
')',
'-gravity', 'North', '-geometry', '+0+330', '-composite', png]);
run(MAGICK, [png, '-font', FONT, '-fill', HEX_INK, '-pointsize', '42', '-gravity', 'North',
@@ -298,19 +298,24 @@ function buildPanelCard(dir, { name, kicker, imgPath, caption }) {
baseCanvas(png);
wordmark(png);
run(MAGICK, [png, '-font', FONT, '-fill', HEX_RED, '-pointsize', '46', '-gravity', 'North',
- '-annotate', '+0+230', kicker, png]);
+ '-annotate', '+0+300', kicker, png]); // below the top-right SATIRE badge (ends ~y260)
// frame the screenshot on a white card so it reads clearly against the dark background
const framed = path.join(dir, `framed-${name}.png`);
run(MAGICK, [imgPath, '-resize', '960x960>', '-bordercolor', 'white', '-border', '24', framed]);
- run(MAGICK, [png, framed, '-gravity', 'North', '-geometry', '+0+330', '-composite', png]);
+ run(MAGICK, [png, framed, '-gravity', 'North', '-geometry', '+0+390', '-composite', png]);
+ // caption sits just under the framed image instead of a fixed y, so a wide/short
+ // strip (plot twist) doesn't leave a big empty gap
+ let framedH = 960;
+ try { framedH = parseInt(execFileSync(MAGICK, ['identify', '-format', '%h', framed]).toString(), 10) || 960; } catch {}
+ const capY = Math.min(390 + framedH + 70, 1480);
if (caption) {
const cFile = writeRaw(dir, `c-${name}.txt`, caption);
const size = fitCaption(MAGICK, FONT, cFile, '940x260');
run(MAGICK, [png, '(', '-background', 'none', '-fill', HEX_INK, '-font', FONT, '-pointsize', String(size),
'-size', '940x260', '-gravity', 'center', `caption:@${cFile}`, ')',
- '-gravity', 'North', '-geometry', '+0+1480', '-composite', png]);
+ '-gravity', 'North', '-geometry', `+0+${capY}`, '-composite', png]);
}
footer(png);
stampSatireBadge(png);
← ce98d61 Add make-cartoon-shorts.mjs: turn each P24 cartoon into a ve
·
back to Crazy News Channel Shadowman
·
daily cartoon batch: post new cartoons as public Satire Shor 9abf345 →