[Sharp] “Input buffer contains unsupported image format” というエラーが発生する時の改善方法

JavaScript

JavaScriptの画像処理のライブラリSharpで以下のようなエラーが発生しました。

Error resizing image: Error: Input buffer contains unsupported image format

エラーが発生するコード

const imageBuffer = Buffer.from(
    imageBase64, // この行を修正する必要がある
    'base64'
);

const resizedImageBuffer = await sharp(imageBuffer)
    .resize({ width, height })
    .toBuffer();

以下のように修正することで、エラーが解消しました。

console.log(imageBase64) // data:image/jpeg;base64,/9j/4AAQSkZA...
const imageBuffer = Buffer.from(
    imageBase64.replace(/^data:image\/\w+;base64,/, ""),
    'base64'
);

広告