「nodejs base64 resize 」等で検索しても、document.createElement(‘canvas’) を使用する記事ばかりだったのでメモ。
ブラウザは使わないで、サーバサイド上でやりたかった。
sharpを使えば解決だった。
$ npm install sharp
例:
import sharp from "sharp";
const originalBase64 = "data:image/png;base64,......";
const resizedImage = await sharp(
Buffer.from(
originalBase64.replace(/data:.+;base64,/, ""),
"base64"
)
)
.resize({ width: 320, height: 320 })
.png();
const resizedImageBuf = await resizedImage.toBuffer();
const resizedBase64 = "data:image/png;base64," + resizedImageBuf.toString("base64");