Generate fast WebP thumbnails from images, PDFs, Office files, spreadsheets, and text.
npm install genthumb- Image:
jpg,jpeg,png,gif,bmp,webp,tiff - Document:
pdf,docx,doc - Presentation:
pptx,ppt - Spreadsheet:
csv,tsv,xlsx,xls,xlsm,xlsb,ods - Text:
txt,text,md,markdown,log
Notes:
csvandtsvare treated as spreadsheet inputs.- For unknown formats, genthumb returns an error.
generateThumbnail(input, width, height, mimeType?) => Bufferinput:string | Bufferwidth:numberheight:numbermimeType(optional):string
Returns a WebP-encoded Buffer.
Path input:
import { writeFileSync } from 'node:fs';
import { generateThumbnail } from 'genthumb';
const thumb = generateThumbnail('./tests/documents/test-image.jpeg', 320, 240);
writeFileSync('./thumb.webp', thumb);Buffer input:
import { readFileSync, writeFileSync } from 'node:fs';
import { generateThumbnail } from 'genthumb';
const source = readFileSync('./tests/documents/test-pdf.pdf');
const thumb = generateThumbnail(source, 320, 240, 'application/pdf');
writeFileSync('./thumb.webp', thumb);Buffer input with MIME auto-detection:
import { readFileSync } from 'node:fs';
import { generateThumbnail } from 'genthumb';
const source = readFileSync('./tests/documents/test-image.jpeg');
const thumb = generateThumbnail(source, 320, 240);