文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

node.js怎么去水印

2023-07-06 04:39

关注

这篇文章主要介绍“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怎么去水印”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯