add support for stylized attribution text for static images

This commit is contained in:
Craig Kochis 2023-10-04 22:28:15 -04:00
parent 592beaab29
commit 7766ddbc03

View file

@ -771,6 +771,26 @@ export const serve_rendered = {
composite_array.push({ input: canvas.toBuffer() }); composite_array.push({ input: canvas.toBuffer() });
} }
if (item.attributionText) {
const canvas = createCanvas(scale * width, scale * height);
const ctx = canvas.getContext('2d');
ctx.scale(scale, scale);
ctx.font = '12px sans-serif';
const text = item.attributionText;
const textMetrics = ctx.measureText(text);
const textWidth = textMetrics.width;
const textHeight = 14;
const padding = 10;
ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
ctx.fillRect(width - textWidth - padding, height - textHeight - padding, textWidth + padding, textHeight + padding);
ctx.fillStyle = 'rgba(0,0,0,.8)';
ctx.fillText(item.attributionText, width - textWidth - (padding / 2), height - textHeight + 8);
composite_array.push({ input: canvas.toBuffer() });
}
if (composite_array.length > 0) { if (composite_array.length > 0) {
image.composite(composite_array); image.composite(composite_array);
} }
@ -1378,6 +1398,7 @@ export const serve_rendered = {
dataProjWGStoInternalWGS: null, dataProjWGStoInternalWGS: null,
lastModified: new Date().toUTCString(), lastModified: new Date().toUTCString(),
watermark: params.watermark || options.watermark, watermark: params.watermark || options.watermark,
attributionText: params.attributionText || options.attributionText,
}; };
repo[id] = repoobj; repo[id] = repoobj;