Code

import { join } from "path";
import {
  createTemplate,
  createImageGenerator,
  TemplateImage,
  type ImageSource,
} from "canvacord";

const StewieGriffin = createTemplate((image: ImageSource) => {
  return {
    width: 1024,
    height: 1024,
    steps: [
      {
        image: [
          {
            source: new TemplateImage(image),
            x: 180,
            y: 0,
            width: 680,
            height: 680,
          },
        ],
      },
      {
        image: [
          {
            source: new TemplateImage(
              join(import.meta.dirname, "stewie-griffin-source.png")
            ),
            x: 0,
            y: 0,
          },
        ],
      },
    ],
  };
});

export async function stewieGriffin(image: ImageSource) {
  const output = await createImageGenerator(StewieGriffin(image)).render();
  const result = await output.encode("png");

  return result;
}

Usage

import { writeFile } from "node:fs/promises";
import { stewieGriffin } from "./stewie-griffin";

const targetImage = "https://cdn.discordapp.com/embed/avatars/0.png";

const result = await stewieGriffin(targetImage);

await writeFile("./stewie-griffin-result.png", result);

Result