私は750pxの画像で1000pxを持っています。
サイズを変更するためにlovell/sharpを使います:
await sharp(image)
.resize({
fit: sharp.fit.contain,
width: 800,
height: 800
})
.jpeg({ quality: 80 })
.toBuffer()
_
これにより、オリジナルのイメージがその領域内に800px×800pxの新しいイメージが発生します。
私が本当に好きなのは、600pxで800pxの最終的なイメージを持つことです。イメージのサイズを変更してアスペクト比を維持するためのIOW。
幅のみを指定することでこれを行うことができることを実感します。ただし、特定の高さを超える画像を作成しないように、サイズ変更されたイメージを含めるには、バウンディングボックスを入れることは便利です。
さまざまな設定でこれをシャープで行うことができますか?
Fitプロパティに文字列を渡します。
let resizedPhoto
await sharp(photoBuffer)
.resize({ width: 1200, height: 900, fit: 'fill' })
.toBuffer()
.then((data) => {
resizedPhoto = data
})
.catch((err) => {})
_