相信很多人都玩过QQ宠物吧,QQ宠物停运之后,说实话心里还是有点不舍的,所以一直有着自己制作一只桌面宠物的想法,现在先在浏览器中试着实现了一下,感觉还是挺有趣的,如果有人喜欢,后续还可以加入更多的操作。

1、 准备工作

(1)需要准备自己想要的展示gif图包;
(2)将gif图包拆分成图片帧;
(3)对图片帧进行去除背景操作;
(4)将处理好的图片帧嵌入网页组成动图展示。

2、准备gif图包

这个比较简单,可以从视频中截取或者是直接从网上查找。
这里我以网上找的 第四代火影波风水门 的动图为例,如下图。

3、将动图拆分为帧图片

这里我使用了python来对动图进行处理。

#提取帧图片
#参数说明
#video_path:动图(视频)路径
#dst_folder:帧图片存放路径
#index:拆分帧数
def extract_frames(video_path, dst_folder, index):import cv2#这里需要用到opencv库#pip install opencv-pythonvideo = cv2.VideoCapture()if not video.open(video_path):print("无法打开文件")exit(1)count = 1while True:_, frame = video.read()if frame is None:breakif count % EXTRACT_FREQUENCY == 0:save_path = "{}/{:>03d}.jpg".format(dst_folder, index)print(save_path)cv2.imwrite(save_path, frame)index += 1count += 1video.release()# 打印出所提取帧的总数print("Totally save {:d} pics".format(index - 1))return index

4、去除图片帧背景(抠图)

这里使用了removebg这个库来进行处理,要想实现这个功能,我们首先要登陆主页注册一下,然后获得一个他们的API,得到API以后,我们就可以实现这个功能了。
主页:https://www.remove.bg

#去除图片背景
#参数说明
#index:转换图片总数
from removebg import RemoveBg
#pip install removebg
import os
def removeBg(index):for i in range(1,index):print("正在转换第%d张"%i)try:imgpath = EXTRACT_FOLDER + '/00' + str(i) +'.jpg'saveimg = NOBG_FOLDER + '/no-bg' + str(i) +'.png'response = requests.post('https://api.remove.bg/v1.0/removebg',files={'image_file': open(imgpath, 'rb')},data={'size': 'auto'},headers={'X-Api-Key': '你申请的key'},)if response.status_code == requests.codes.ok:with open(saveimg, 'wb') as out:out.write(response.content)print(imgpath+"已去除背景")else:print("Error:", response.status_code, response.text)except:print(imgpath+'无法转换')

5、插件脚本制作

let imglist = ["https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/d1a674bf-3374-49f6-a2fc-1598e5c22fb4.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/d8ba8a51-1994-40f7-8eac-9b6dab45dc68.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/5a8ac4a2-05a8-4fcb-9207-5b2f21f2be94.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/ae03fab6-cb00-421b-bb74-83279fddf16d.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/3c911ff3-ea69-408f-92cf-91aacd3d41cd.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/b9ba30b2-6c3a-4b40-9f0a-636aafb8c3e7.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/492ddfb1-a25d-47ea-aafe-ff6ceb2ffbc3.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/4a5d7408-801b-419c-9afa-2e716d8d4db3.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/8b23a55a-306c-4ab9-a304-2e66bd71f0fe.png","https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/21df1eea-34b8-4f5a-8bdd-c74943782374.png"
];
let body = document.getElementsByTagName('body')[0];
let myimgbox = document.createElement('div');
myimgbox.id = 'myimgbox';
myimgbox.style.position = 'fixed';
myimgbox.style.right = '40px';
myimgbox.style.top = '50%';
myimgbox.style.opacity = '0.9';
myimgbox.style.zIndex = 1000;
body.appendChild(myimgbox);
var html="";
function changeimg(i,min,max,file){html ='<img id = "mypet" style="width:250px !important;heigth:134px !important;" src="' + imglist[i] + '"/>';document.getElementById("myimgbox").innerHTML=html;// console.log(html);if(i < max){i++;}else{i = min;}setTimeout(function(){changeimg(i,min,max,file)},200);
}
changeimg(0,0,imglist.length-1,"水门");var gmove=false;
var startX
var startY
var endX
var endY
var _gx,_gy;//按钮拖拽功能
$("#myimgbox").mousedown(function(e){gmove=true;startX = e.pageXstartY = e.pageYconsole.log("move",gmove);_gx=e.pageX-parseInt($("#myimgbox").css("left"));_gy=e.pageY-parseInt($("#myimgbox").css("top"));
});
$(document).mousemove(function(e){if(gmove){var x=e.pageX-_gx;//控件左上角到屏幕左上角的相对位置var y=e.pageY-_gy;$("#myimgbox").css({"top":y,"left":x});}
}).mouseup(function(e){endX = e.pageX;endY = e.pageY;let d = Math.sqrt((startX - endX) * (startX - endX) + (startY - endY) * (startY - endY));console.log("d:",d);if (d === 0 || d < 7) {console.log("执行了点击事件");} else {console.log("执行了拖拽事件");}gmove=false;
});

6、效果展示

7、插件下载

码云Gitee:https://gitee.com/zheng_yongtao/chrome-plug-in.git

8、体验

下载后直接拉进插件中心即可,不懂的可以参照之前的blog中的使用教程:https://blog.csdn.net/Twinkle_sone/article/details/115561476

七夕节特辑,浏览器桌面太无聊,为什么不做个挂件来陪自己呢?相关推荐

  1. python代码雨在桌面实现_今天七夕节,外面下着大雨,用Python的tkinter做一个下爱心雨的特效,发给妹子...

    正文 今天七夕,还下着雨,刚好想做一个下着爱心雨的特效 准备图片素材 1.美图秀秀找一个爱心图,大小就50*50就可以,生成的是一个png格式文件 2.由于canvas.create_image只支持 ...

  2. 七夕节送男朋友什么礼物、男生最渴望收到的礼物排行榜

    马上就是一年中最浪漫的日子了--七夕节,作为中国传统节日中正大光明的情人节,也可以正大光明地给男朋友准备礼物秀恩爱了.既然是送男生礼物,那肯定就要送到对方的心坎上了,送对了他开心你也会很高兴,双赢的局 ...

  3. 七夕节,中国的情人节?

    明天就是传统的七夕节,往年倒是不是太在意,不过今年有着太多的人提醒我,让我去注意,让我去关注--无聊之际就百度一下,关于七夕的信息,以下是收集到的信息: 七月七"七夕"节的来历 七 ...

  4. 七夕节脱单“神助攻”!AI教你写情话

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 广大的钢铁直男们,七夕节快 ...

  5. 【 HDU - 1215 】七夕节(数论,约数和公式)

    题干: 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"  人们纷纷来到告示前,都想知道 ...

  6. html表白特效源代码_程序员如何在七夕节表白

    今天就是七夕节了,多少小情侣在这一天表白了.那么,我们程序员如何对她表白呢. 我们使用HTML和CSS来绘制一个会跳动的爱心.我们开发工具就使用HBuilderX吧,国产前端开发利器.我们打开HBui ...

  7. 七夕节给男朋友买什么礼物比较好呢?2022年七夕礼物推荐

    七夕节是个浪漫的节日,这个有纪念意义的日子里给自己男朋友送出一份礼物,一定让他记在心里.我给大家分享如下几款男士礼物,大家根据消费水平选择.礼物是心意的体现,不一定要贵. 一.南卡runner pro ...

  8. python表白代码照片墙-这个七夕节,用Python为女友绘制一张爱心照片墙吧!

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  9. HYS与七夕节大作战 vijos

    背景 一年一度的七夕节到了,HYS又开始烦恼他的约会安排,作为一名后辈,你被他选中来帮助他. 描述 由于HYS有很多名女友,所以他不可能在一天之内和所有的女友都进行约会,于是你决定帮他选定一些女友进行 ...

最新文章

  1. jQuery性能优化指南
  2. 谷歌X实验室开源了一款像血糖仪一样的EEG识别系统
  3. [并发编程] - Executor框架#ThreadPoolExecutor源码解读03
  4. 学好计算机科学的诀窍,【教学方法论文】计算机科学技术专业高效教学方法(共4295字)...
  5. rabbitmq-5-案例2-简单的案例+exchange
  6. opacity用法:
  7. eclipse中birt插件使用_waves教学:如何使用通道条插件在DAW中创建模拟工作流
  8. C#0008--制作闪烁的窗体
  9. java 文件压缩_java实现文件压缩
  10. 免费下载加速软件IDM,让你的下载不限速,高达10M每秒
  11. 数据库设计(一)——数据库设计
  12. 计算机共享地址怎么设置到桌面,局域网共享在哪里设置
  13. 电工与电子技术和电子电工的区别
  14. 读书笔记:《巴菲特投资成功的七大秘诀》
  15. Android封装一个自定义标题栏
  16. 生命的枯榮竟是如此慘厲
  17. 专访清华裘捷中:亚洲高校首个KDD最佳博士论文奖是如何炼成的?
  18. COMSOL如何绘制紧贴圆柱面的圆面
  19. Java后台与微信小程序的数据交互
  20. ros订阅相机深度信息_基于深度相机 RealSense D435i 的 ORB SLAM 2

热门文章

  1. Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能[转]
  2. ZYNQ相关的常见概念
  3. Webx3 FrameWork 教程
  4. C语言strlen返回值问题
  5. ubuntu20.04如何安装i3wm?
  6. webpack 面试题
  7. 基于ESP或ESP8266 单通道Lorawan网关硬件制作
  8. mac触控板使用技巧,教你在Mac上使用触控栏
  9. JAVA自学之路 四:抓大放小,要事为先
  10. 551.学生出勤记录1