[英]Keep rotation metadata with sharp node.js
我正在開發一個使用Sharp處理照片的應用程序。 目前,當我們調整大小然后寫入緩沖圖像時,使用銳利的調整大小和 toBuffer,默認情況下,它們兩者都會擦除 EXIF 數據。 我們要刪除除方向(如果存在)之外的所有元數據。
我已經閱讀了夏普的文檔, withMetadata 似乎是實現我想要的目標的候選人,問題是 withMetadata 保留了所有元數據,我只想要原始圖像的方向。
原始代碼行是
await this.sharpInstance.resize(maxDimension, maxDimension).max().toBuffer()
我認為我想要的是
await this.sharpInstance.withMetadata().resize(maxDimension, maxDimension).max().withMetadata().toBuffer()
但僅適用於方向元數據。
我真的很感激一些幫助來解決這個問題。 非常感謝!
您是否嘗試過await this.sharpInstance.resize(maxDimension, maxDimension).max().withMetadata().toBuffer()
作為關於withMetadata
的夏普文檔。
編輯:
收到。 因此與withMetadata
,首先我們需要保存方向元數據,然后稍后分配給 output 緩沖區:
// First, save the orientation for later use
const { orientation } = await this.sharpInstance.metadata();
// Then output to Buffer without metadata
// then create another Sharp instance
// from output Buffer which doesn't have metadata
// and assign saved orientation along with it
sharp(this.sharpInstance.toBuffer())
.withMetadata({ orientation }).toBuffer();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.