Skip to content

xcvzmoon/genthumb

Repository files navigation

GENTHUMB

CI Repository npm

Generate fast WebP thumbnails from images, PDFs, Office files, spreadsheets, and text.

Installation

npm install genthumb

Supported Inputs

  • 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:

  • csv and tsv are treated as spreadsheet inputs.
  • For unknown formats, genthumb returns an error.

API

generateThumbnail(input, width, height, mimeType?) => Buffer
  • input: string | Buffer
  • width: number
  • height: number
  • mimeType (optional): string

Returns a WebP-encoded Buffer.

Usage

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);

About

Generate fast WebP thumbnails from images, PDFs, Office files, spreadsheets, and text

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors