【Node.js】base64エンコードされた画像サイズ変換をdocument.createElement(‘canvas’)を使わずに行う

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です