为了让自己心情愉悦,我用python把美妞得图片制成了GIF设置桌面

news2025/1/13 17:45:23

前言

大家早好、午好、晚好吖 ❤ ~

要想生活过的去,每天美女必然少不了~

每天看美女,只为了愉悦心情,心情好了,才长寿。

于是怀揣着愉悦心情的想法,我开始制作GIF动图生成器

这个小工具制作的目的是为了将多张图片组合后生成一张动态的GIF图片。

设置界面化的操作,只需要将选中的图片导入最后直接生成动态图片。

这样的话就人人可以用了,到时候还可以传给你的好兄弟,让他去找资源,做好了给你用 哈哈~

需要美女图片也可以看博主得宁一篇文章:

python二十行代码教你批量采集超高清 jpg

代码展示

导入相关需要使用的模块

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

import imageio

import sys
import os
from datetime import datetime

这是用图片生成器生成的一张GIF图片

大家在生成时尽量选择几张大小尺寸一致的照片生成后的动态图片切合度会比较高。

这里简单的用了几张图给大家看一下效果,弄多了内存大了就发不上来了

请添加图片描述

小工具中包含两个重要的函数过程,一个是UI界面的制作生成,另一个是将多张图片进行合成GIF的动态图片。

UI 界面制作函数过程

def init_ui(self):
    self.setWindowTitle('Gif图片生成器')
    self.setWindowIcon(QIcon('图标.ico'))

    vbox = QVBoxLayout()

    self.moive_label = QLabel()
    gif = QMovie()
    gif.setFileName('20220124215914.gif')
    self.moive_label.setMovie(gif)
    gif.start()

    grid = QGridLayout()

    self.images_text = QLineEdit()
    self.images_text.setPlaceholderText('源图片文件')
    self.images_text.setReadOnly(True)

    self.images_btn = QPushButton()
    self.images_btn.setText('选择图片')
    self.images_btn.clicked.connect(self.images_btn_click)

    self.save_dir = QLineEdit()
    self.save_dir.setPlaceholderText('存储路径')
    self.save_dir.setReadOnly(True)

    self.save_dir_btn = QPushButton()
    self.save_dir_btn.setText('存储路径')
    self.save_dir_btn.clicked.connect(self.save_dir_btn_click)

    self.generate_btn = QPushButton()
    self.generate_btn.setText('快速生成')
    self.generate_btn.clicked.connect(self.generate_btn_click)

    grid.addWidget(self.images_text, 0, 0, 1, 2)
    grid.addWidget(self.images_btn, 0, 2, 1, 1)

    grid.addWidget(self.save_dir, 1, 0, 1, 2)
    grid.addWidget(self.save_dir_btn, 1, 2, 1, 1)

    grid.addWidget(self.generate_btn, 2, 0, 1, 3)

    vbox.addLayout(grid)

    vbox.addWidget(self.moive_label)

    self.setLayout(vbox)

GIF动态图片生成过程

def generate_btn_click(self):
    paths = []
    image_paths = self.images_text.text().strip().split(",")
    for image_path in image_paths:
        if image_path.strip() != '':
            paths.append(image_path)
    print('已选择的图片路径:', paths)
    gif_image = []
    for path in paths:
        gif_image.append(imageio.imread(path))
    gif_path = self.save_dir.text().strip() + '/' + datetime.now().strftime("%Y%m%d%H%M%S") + '.gif'
    imageio.mimsave(gif_path, gif_image, fps=1)
    gif = QMovie()
    gif.setFileName(gif_path)
    self.moive_label.setMovie(gif)
    gif.start()

完整代码文末名片自取就好了哈~

另我给大家准备了一些资料,包括:

2022最新Python视频教程、Python电子书10个G

(涵盖基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题)、Python学习路线图等等

全部可在文末名片获取哦!

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

舵机的控制

舵机的信号线是做为输入线就是接收PWM信号(定时器产生)。 一般PWM的周期是20ms,那么对应的频率是50hz。那么改变不同的占空比就可以控制转动的角度。 其中占空比从0.5-2.5ms(如果占空比大于2.5ms也只会在最大角度。),相…

Node.js+MySQL开发的B2C商城系统源码+数据库(微信小程序端+服务端),界面高仿网易严选商城

下载地址:Node.jsMySQL开发的B2C商城系统源码数据库(微信小程序端服务端) NideShop商城(微信小程序端) 界面高仿网易严选商城(主要是2016年wap版)测试数据采集自网易严选商城功能和数据库参考ecshop服务端api基于&am…

php学习笔记-代码基本语法-day01

php代码基本语法 PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法&…

一些微信使用小技巧分享

技巧一:检测僵尸粉 微信好友过多,我们可以通过创建群聊来检测好友。点击右上角图标,选择【发起群聊】,勾选需要检测的好友,点击【完成】。能进群的都是朋友关系,不能进群的会删或者拉黑你。不过需要注意的是…

VS2022点云库PCL1.12配置过程中遇到的一些奇葩问题

最近处于换工作的间歇期,原来配置的电脑交公了,各种程序数据都做了搬家。对这些程序重新配置,可以说是一地鸡毛。系统对不上,各个开源库版本一团乱麻,尤其是配置PCL库的时候,遇到了各种奇奇怪怪的问题&…

二十八、Docker (4)

🌻🌻 目录一、Dockerfile入门1.1 Dockerfile 常用命令1.2 Dockerfile 搭建 jdk 环境1.3 Dockerfile 搭建 tomcat 环境镜像1.4 Dockerfile 创建微服务 java 镜像二、使用Nexus搭建Docker镜像私有仓库2.1 安装 Nexus2.2 访问配置 Nexus2.3 配置 Docker 服务…

自动驾驶助力智慧港口建设,景联文科技提供数据标注服务

“在无人集卡出现以前,岸桥式起重机需要把停靠在岸边的船舶上数百个集装箱全部吊起,放到一旁的集装箱卡车上,运向堆场,等待集装箱卸货后再进行下一次往返工作。为保证工作效率,需要上百位司机驾驶着集卡在港口中来回往…

拉伯证券|磷酸铁锂电池在储能市场的应用有哪些?

时隔四个月,中国有色金属工业协会硅业分会重启硅料报价。本周,单晶复投料成交均价为17.82万元/吨,单晶细密料成交均价为17.62万元/吨。综合其他组织报价数据,硅料已全线跌破20万元/吨,作为对比,上一年10月底…

Java入门知识以及细节(1.3w字笔记)

欢迎来到我的主页:【一只认真写代码的程序猿】 本篇文章收录于专栏【Java入门学习】 如果这篇文章对你有帮助,希望点赞收藏加关注啦~ 目录 Java和C的区别 Java中的运算 Math.random()函数 跳出多重循环的两种break方法 数组中的使用以及Java中的…

windows下图像标注软件Labelme安装及使用教程

文章目录一.Labelme简介二.安装labelme三.使用labelme进行图像标注一.Labelme简介 LabelMe 是一个用于在线图像标注的Javascript标注工具。与传统图像标注工具相比,其优势在于我们可以在任意地方使用该工具。此外,它也可以帮助我们标注图像,…

TCP 三次握手 四次挥手

请描述TCP三次握手和四次挥手,这是非常常考的一道面试题。 大家不要去追求过多的细节,你如果是搜一些文章或者答案的话,它会给你描述的很细。 然后我/你看到会很懵,因为这里面如果讲细了的话,需要很多这种网络请求的相…

Go语言基础2

一、注释 单行注释 // 我是单行注释多行注释 /* 我是多行注释 我是多行注释 我是多行注释 */二、变量 1. var name type (声明变量时将变量的类型放在变量的名称之后) var,声明变量的关键字name,变量的名字type,变量的类型 eg:单个定义…

FFMPEG完美入门资料---003---FFmpeg 架构

3.1 FFmpeg 文件结构 libavformat 主要存放 ffmpeg 支持的 各种编解码器 的实现及 ffmpeg 编解码 功能相关的数 文件简要说明allcodecs.c简单的注册类函数avcodec.h编解码相关结构体定义和函数原型声明dsputil.c限幅数组初始化dsputil.h限幅数组声明imgconvert.c颜色空间转换相…

剑指offer(C++)-JZ63:买卖股票的最好时机(一)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请…

FreeMen正式上线,让工作更自由

“让工作更自由”,开屏页上六个大字宣告着FreeMen正式上线,全新的FreeMen APP也正式登录各大手机应用市场。作为一款专注IT技术者圈子的APP,其上线标志着助力程序员职业道路上向前迈进一大步。 FreeMen相关负责人表示,基本上10个职…

基于java+Springboot操作系统教学交流平台详细设计实现

基于javaSpringboot操作系统教学交流平台详细设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

【C语言】使用指针时出现的各种错误总结以及处理方法

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、什么是野指针二、野指针出现…

Redis主从哨兵集群

主从 主从同步原理 1.全量同步 1.从节点刚连接到主节点时,主动请求数据同步 2.主节点判断是否是第一次同步,如果是,就返回主节点的数据版本信息 3.随后,主节点执行bgsave,生成RDB文件,并发送给从节点 4.这…

Java时间类

时间在Java中是两个类 Date 和 Calendar Date类 Date是在Java.util包中的也就是工具包。 测试 输出的是当前的系统时间 修改idea中的注释的颜色: 是date不是data package org.data; import java.util.Date; public class Test { public static void main(…

【Oracle】20230106PLSQL中文不显示,全部为?解决流程

问题:查询的表中有中文数据,全部显示为? 解决途径1:修改注册表以及环境变量(改系统变量!不要只改用户变量) Oracle使用——PLSQL的中文乱码显示全是问号_海蓝树的博客-CSDN博客_plsql无法显示…