Node.js使用sharp庫(kù)實(shí)現(xiàn)PNG圖片轉(zhuǎn)換為WebP格式
1. 安裝 Sharp
首先,你需要在項(xiàng)目中安裝 sharp。在終端中運(yùn)行以下命令:
npm install sharp
2. 編寫(xiě)轉(zhuǎn)換代碼
接下來(lái),你可以編寫(xiě)一個(gè)簡(jiǎn)單的腳本來(lái)執(zhí)行轉(zhuǎn)換。以下是一個(gè)示例代碼,展示了如何將 PNG 圖片轉(zhuǎn)換為 WebP 格式:
// convert.js
const sharp = require('sharp');
const path = require('path');
const fs = require('fs');
// 輸入和輸出文件路徑
const inputFilePath = path.join(__dirname, 'input.png'); // 替換為你的 PNG 文件路徑
const outputFilePath = path.join(__dirname, 'output.webp'); // 輸出的 WebP 文件路徑
// 檢查輸入文件是否存在
if (!fs.existsSync(inputFilePath)) {
console.error('輸入文件不存在');
process.exit(1);
}
// 使用 sharp 進(jìn)行轉(zhuǎn)換
sharp(inputFilePath)
.toFile(outputFilePath, (err, info) => {
if (err) {
console.error('轉(zhuǎn)換失敗:', err);
} else {
console.log('轉(zhuǎn)換成功:', info);
}
});
3. 運(yùn)行轉(zhuǎn)換腳本
將上述代碼保存為 convert.js,然后在終端中運(yùn)行以下命令:
node convert.js
4. 結(jié)果
如果一切正常,腳本將會(huì)讀取指定的 PNG 文件并將其轉(zhuǎn)換為 WebP 格式,輸出到指定的路徑。你可以在輸出路徑中找到生成的 output.webp 文件。
5. 其他選項(xiàng)
sharp 還提供了許多其他選項(xiàng),可以在轉(zhuǎn)換時(shí)進(jìn)行調(diào)整,例如設(shè)置質(zhì)量、調(diào)整尺寸等。以下是一個(gè)示例,展示了如何設(shè)置 WebP 的質(zhì)量:
sharp(inputFilePath)
.webp({ quality: 80 }) // 設(shè)置質(zhì)量為 80
.toFile(outputFilePath, (err, info) => {
// ...
});
總結(jié)
使用 sharp 庫(kù)可以方便地將 PNG 圖片轉(zhuǎn)換為 WebP 格式,并且支持多種圖像處理功能。通過(guò)簡(jiǎn)單的代碼,你可以實(shí)現(xiàn)高效的圖像格式轉(zhuǎn)換。
到此這篇關(guān)于Node.js使用sharp庫(kù)實(shí)現(xiàn)PNG圖片轉(zhuǎn)換為WebP格式的文章就介紹到這了,更多相關(guān)Node.js PNG圖轉(zhuǎn)webP內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node.js中的fs.fchown方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.fchown方法使用說(shuō)明,本文介紹了fs.fchown方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
npm?ERR!Cannot?read?properties?of?null(reading?'p
這篇文章主要給大家介紹了關(guān)于npm?ERR!Cannot?read?properties?of?null(reading?'pickAlgorithm')報(bào)錯(cuò)問(wèn)題的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
基于node打包可執(zhí)行文件工具_(dá)Pkg使用心得分享
下面小編就為大家分享一篇基于node打包可執(zhí)行文件工具_(dá)Pkg使用心得分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
nodejs結(jié)合Socket.IO實(shí)現(xiàn)websocket即時(shí)通訊
websocket 是一種網(wǎng)絡(luò)通信協(xié)議,一般用來(lái)進(jìn)行實(shí)時(shí)通信會(huì)使用到。本文主要介紹了nodejs結(jié)合Socket.IO實(shí)現(xiàn)websocket即時(shí)通訊 ,感興趣的可以了解一下2021-11-11
Node.JS發(fā)送http請(qǐng)求批量檢查文件中的網(wǎng)頁(yè)地址、服務(wù)是否有效可用
這篇文章主要介紹了Node.JS發(fā)送http請(qǐng)求批量檢查文件中的網(wǎng)頁(yè)地址、服務(wù)是否有效可用,本文通過(guò)實(shí)例代碼文字說(shuō)明給大家講解的非常詳細(xì),需要的朋友參考下2019-11-11
在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法
這篇文章主要介紹了在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

