web-dev-qa-db-ja.com

node.jsでシャープを使用して画像を圧縮する

node.jssharpを使用して画像のサイズを変更して圧縮したい

シャープでは、jpegの場合は個別の圧縮が行われ、webpの場合は個別に行われ、pngの場合は個別に行われます。

WEBP

sharp('a.jpg')
.resize(1000)
.webp({quality: 80})

JPEG

sharp('_4_.jpg')
 .resize(1000)
 .jpeg({quality: 80})

PNG

sharp('_4_.jpg')
 .resize(1000)
 .png({compressionLevel: 8})

基本的には、どの形式で画像をチェックすることなく、画像を圧縮してサイズを変更したいと考えています。

sharpに何かありますか?

8
Haseeb Ahmad

出力形式を入力形式と一致させたい場合は、forceオプションを確認する必要があります。

sharp(input)
  .jpeg({ progressive: true, force: false })
  .png({ progressive: true, force: false })
  ...

GIF出力はサポートされていないため、GIF入力はデフォルトでPNG出力になります。

追加リファレンス: https://sharp.readthedocs.io/en/v0.17.0/api-output/#jpeg

2
sbay