91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js怎么去水印

發布時間:2023-04-15 10:51:16 來源:億速云 閱讀:119 作者:iii 欄目:開發技術

這篇文章主要介紹“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怎么去水印”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武隆县| 湾仔区| 吴川市| 永胜县| 象州县| 新安县| 康乐县| 芒康县| 宜春市| 基隆市| 惠州市| 镇安县| 兴安盟| 贡觉县| 大化| 瑞昌市| 西林县| 格尔木市| 会昌县| 洛宁县| 漯河市| 福建省| 远安县| 安阳市| 新郑市| 吉安市| 大丰市| 阳城县| 天镇县| 兰坪| 乐山市| 余江县| 滨海县| 吉木乃县| 蓬安县| 闵行区| 宜川县| 龙海市| 武清区| 高青县| 永兴县|