您好,登錄后才能下訂單哦!
這篇文章主要介紹“node.js怎么去水印”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“node.js怎么去水印”文章能幫助大家解決問題。
// 獲取類型 get_type(){ if(this.url.match(/http[s]?:\/\/v\.douyin\.com\/[^ ]+/) != null){ console.log("識別到【dy】鏈接") return "dy" } else if(this.url.match(/http[s]?:\/\/v\.kuaishou.com\/[^ ]+/) != null){ console.log("識別到【ks】鏈接") return "ks" } else if(this.url.match(/http[s]?:\/\/xhslink\.com\/[^ ]+/) != null){ console.log("識別到【xhs】鏈接") return "xhs" } else{ console.log("未識別到鏈接類型,請輸入正確的鏈接") return null } }
// 初始化方法 constructor() { this.token = "Z1QljZOZiT4NTG" // token // 請求地址數組對象 this.req_urls = { dy: "http://api.txapi.cn/v1/parse_short_video/dy", ks: "http://api.txapi.cn/v1/parse_short_video/ks", xhs: "http://api.txapi.cn/v1/parse_short_video/xhs", } this.url = '' // 要解析的地址 this.type = '' // 用來存儲識別到的類型 }
// 萬能解析 parse_video(){ axios({ url: this.req_urls[this.type], method: 'POST', headers: { 'Content-Type': "application/x-www-form-urlencoded" }, responseType: 'json', data: { token: this.token, url: this.url } }) .then(resp => { // 校驗是否解析成功 if(resp.data.code != 200 && resp.data.msg != "OK"){ console.log("解析失敗") } else{ // 獲取到解析后的數據 const data = resp.data.data console.log(data) var type = data.type // 類型:1視頻 2圖片集 var title = data.title // 標題 var cover_url = data.cover_url // 封面地址 var video_url = data.video_url // 無水印視頻地址 var imgs = data.imgs // 無水印圖片數組 } }) }
const axios = require('axios') class Parse{ // 初始化方法 constructor() { this.token = "Z1QljZOZiT4NTG" // token // 請求地址數組對象 this.req_urls = { dy: "http://api.txapi.cn/v1/parse_short_video/dy", ks: "http://api.txapi.cn/v1/parse_short_video/ks", xhs: "http://api.txapi.cn/v1/parse_short_video/xhs", } this.url = '' // 要解析的地址 this.type = '' // 用來存儲識別到的類型 } // 萬能解析 parse_video(){ axios({ url: this.req_urls[this.type], method: 'POST', headers: { 'Content-Type': "application/x-www-form-urlencoded" }, responseType: 'json', data: { token: this.token, url: this.url } }) .then(resp => { // 校驗是否解析成功 if(resp.data.code != 200 && resp.data.msg != "OK"){ console.log("解析失敗") } else{ // 獲取到解析后的數據 const data = resp.data.data console.log(data) var type = data.type // 類型:1視頻 2圖片集 var title = data.title // 標題 var cover_url = data.cover_url // 封面地址 var video_url = data.video_url // 無水印視頻地址 var imgs = data.imgs // 無水印圖片數組 } }) } // 獲取類型 get_type(){ if(this.url.match(/http[s]?:\/\/v\.douyin\.com\/[^ ]+/) != null){ console.log("識別到【dy】鏈接") return "dy" } else if(this.url.match(/http[s]?:\/\/v\.kuaishou.com\/[^ ]+/) != null){ console.log("識別到【ks】鏈接") return "ks" } else if(this.url.match(/http[s]?:\/\/xhslink\.com\/[^ ]+/) != null){ console.log("識別到【xhs】鏈接") return "xhs" } else{ console.log("未識別到鏈接類型,請輸入正確的鏈接") return null } } // 使用正則區分要解析的鏈接是哪個平臺的【dy、ks、xhs】 run(url){ // 1、把url保存給實例變量【方便后期使用】 this.url = url // 1、獲取類型 this.type = this.get_type(); if(!this.type){ return } // 2、調用萬能解析 this.parse_video() } } if(__filename === process.mainModule.filename) { // new一個Parse對象 const p = new Parse() // 調用run方法 p.run("https://v.douyin.com/hoDBW9H") p.run("https://v.kuaishou.com/C75B2q") p.run("http://xhslink.com/fKihbj") }
補充:除了使用axios網絡請求第三方平臺交互之外,還可以使用第三方庫來實現去水印功能,例如使用jimp庫,實例代碼如下:
const Jimp = require('jimp'); // 讀取原圖 Jimp.read('source.png').then(image => { // 讀取水印圖 Jimp.read('watermark.png').then(watermark => { // 獲取原圖和水印圖的寬高 const width = image.bitmap.width; const height = image.bitmap.height; const wmWidth = watermark.bitmap.width; const wmHeight = watermark.bitmap.height; // 計算水印寬高縮放比例 const scale = width / wmWidth; // 縮放水印圖 watermark.scale(scale); // 將水印圖繪制到原圖上 image.composite(watermark, 0, 0, { mode: Jimp.BLEND_SOURCE_OVER, opacitySource: 1, opacityDest: 1 }); // 保存處理后的圖片 image.write('result.png'); }); });
關于“node.js怎么去水印”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。