Package Exports
- minecraft-skins
- minecraft-skins/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (minecraft-skins) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🧍 minecraft-skins
Module to create 2D renders from Minecraft skins textures.

Usage
First, import the module:
// Using CommonJS const { renderFullBody, renderHead } = require("minecraft-skins"); // Using TypeScript or ESM import { renderFullBody, renderHead } from "minecraft-skins";
Then, you call the
renderFullBodyorrenderHeadfunction by passing a valid skin buffer:// Reading a file with a skin texture const skin = await readFile(path.join(__dirname, "skin.png")); // Using promises renderFullBody(skin).then(async (render) => { await writeFile(path.join(__dirname, "skin_full_body.png"), render); }); renderHead(skin).then(async (render) => { await writeFile(path.join(__dirname, "skin_head.png"), render); }); // Using async/await const fullBody = await renderFullBody(skin); await writeFile(path.join(__dirname, "skin_full_body.png"), render); const head = await renderHead(skin); await writeFile(path.join(__dirname, "skin_head.png"), render);
API
renderFullBody - renderHead
renderFullBody(skin: Buffer | Image, options?: SkinImageOptions) => Promise<Buffer>
// Image class belongs to canvasRender a 2D full image of the skin's body.
renderHead(skin: Buffer | Image, options?: SkinImageOptions) => Promise<Buffer>
// Image class belongs to canvasRender a 2D image of the skin's head.
Both functions above have the same following arguments:
- skin (
Buffer | Image): Skin texture. - options.scale (optional,
number): Scale of the generated image. Defaults to1. - options.layers (optional,
boolean): If the renderer should include the layers of the skin. Defaults totrue.
Both functions return a Promise with the Buffer of the image, or throw an error if something happens during the process.
checkSlim
checkSlim(skin: Buffer | Image) => Promise<boolean>
// Image class belongs to canvasUtility function to check if exactly the pixel located at x=55 and y=20 on a skin is empty. This usually means that the skin is slim (Alex based skins, 3px arms). This pixel is near the arm textures, commonly having a color on the classic skin format. Returns a Promise with a boolean indicating if the skin is slim or not.