This commit is contained in:
Dragon Fire
2024-05-03 10:49:28 -04:00
parent 7916e61bdc
commit a1cb26c596
3 changed files with 7 additions and 6 deletions
@@ -76,6 +76,7 @@ module.exports = class SpongebobTimeCardCommand extends Command {
fontSize -= 10; fontSize -= 10;
ctx.font = this.client.fonts.get('Spongeboytt1.ttf').toCanvasString(fontSize); ctx.font = this.client.fonts.get('Spongeboytt1.ttf').toCanvasString(fontSize);
metrics = ctx.measureText(lines.join('\n')); metrics = ctx.measureText(lines.join('\n'));
heightMetric = measureTextHeightWithBreaks(ctx, lines.join('\n'));
lines = wrapText(ctx, text.toUpperCase(), 1800); lines = wrapText(ctx, text.toUpperCase(), 1800);
} }
const topMost = (canvas.height / 2) - (((fontSize * lines.length) / 2) + ((60 * (lines.length - 1)) / 2)); const topMost = (canvas.height / 2) - (((fontSize * lines.length) / 2) + ((60 * (lines.length - 1)) / 2));
+2 -2
View File
@@ -68,7 +68,7 @@ module.exports = class TweetCommand extends Command {
const ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
ctx.font = this.client.fonts.get('ChirpRegular.ttf').toCanvasString(23); ctx.font = this.client.fonts.get('ChirpRegular.ttf').toCanvasString(23);
const lines = wrapText(ctx, text, 710, true); const lines = wrapText(ctx, text, 710, true);
const metrics = measureTextHeightWithBreaks(ctx, lines.join('\n'), true); const metrics = measureTextHeightWithBreaks(ctx, lines.join('\n'));
const linesLen = metrics + 15; const linesLen = metrics + 15;
canvas.height += linesLen; canvas.height += linesLen;
let imageHeight = 0; let imageHeight = 0;
@@ -224,7 +224,7 @@ module.exports = class TweetCommand extends Command {
const wrapped = wrapText(ctx, text, maxLineLen, true); const wrapped = wrapText(ctx, text, maxLineLen, true);
const emoji = text.match(emojiRegex()); const emoji = text.match(emojiRegex());
if (!emoji) { if (!emoji) {
fillTextWithBreaks(ctx, wrapped.join('\n'), x, y, true); fillTextWithBreaks(ctx, wrapped.join('\n'), x, y);
this.fillHashtags(ctx, wrapped, x, y, emojiSize); this.fillHashtags(ctx, wrapped, x, y, emojiSize);
return ctx; return ctx;
} }
+4 -4
View File
@@ -197,11 +197,11 @@ module.exports = class CanvasUtil {
return ctx; return ctx;
} }
static fillTextWithBreaks(ctx, text, x, y, maxLen, drawMultiBreaks = false) { static fillTextWithBreaks(ctx, text, x, y, maxLen) {
const lines = text.split('\n'); const lines = text.split('\n');
let currentY = y; let currentY = y;
for (const line of lines) { for (const line of lines) {
if (line === '' && drawMultiBreaks) { if (line === '') {
const metrics = ctx.measureText('a'); const metrics = ctx.measureText('a');
currentY += metrics.emHeightAscent + metrics.emHeightDescent; currentY += metrics.emHeightAscent + metrics.emHeightDescent;
} else { } else {
@@ -213,11 +213,11 @@ module.exports = class CanvasUtil {
return ctx; return ctx;
} }
measureTextHeightWithBreaks(ctx, text, parseMultiBreaks = false) { measureTextHeightWithBreaks(ctx, text) {
const lines = text.split('\n'); const lines = text.split('\n');
let result = 0; let result = 0;
for (const line of lines) { for (const line of lines) {
if (line === '' && parseMultiBreaks) { if (line === '') {
const metrics = ctx.measureText('a'); const metrics = ctx.measureText('a');
result += metrics.emHeightAscent + metrics.emHeightDescent; result += metrics.emHeightAscent + metrics.emHeightDescent;
} else { } else {