@discord-card/core
Version:
Discord Card core
54 lines • 2.14 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFontSize = getFontSize;
exports.loadImage = loadImage;
exports.toImage = toImage;
const canvas_1 = require("canvas");
const axios_1 = require("axios");
function getFontSize(str) {
if (str.length < 18)
return 30;
return (600 * Math.pow(str.length, -1.05)).toFixed(0);
}
/** Load a image from a URL */
function loadImage(url) {
return __awaiter(this, void 0, void 0, function* () {
const response = yield axios_1.default.get(url, {
responseType: 'arraybuffer',
});
const buffer = Buffer.from(response.data, 'binary');
let img = new canvas_1.Image();
img.src = buffer;
return img;
});
}
function toImage(image, name) {
return __awaiter(this, void 0, void 0, function* () {
if (image instanceof canvas_1.Canvas) {
let img = new canvas_1.Image();
img.src = image.toBuffer();
return img;
}
else if (image instanceof canvas_1.Image)
return image;
else if (image instanceof Buffer) {
let img = new canvas_1.Image();
img.src = image;
return img;
}
else if (typeof image === 'string')
return yield loadImage(image);
else
throw new Error('Invalid Image Format for: ' + name + '[Image]');
});
}
//# sourceMappingURL=image.js.map