前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

环境使用

所需软件:

  • Python 3.8 解释器

  • Pycharm 编辑器

模块使用:

内置模块

  • import re >>> python独有的匹配字符串的模块,该模块种提供功能基于正则表达式实现的,

    对于字符串进行模糊匹配找到想要的内容信息,一般用于爬虫或者自动化测试前后端不分离项目

  • import os >>> 包含普遍的操作系统功能

第三方模块

  • import requests >>> 网络请求库,提供多种网络请求方法并可定义复杂的发送信息

  • import ctypes >>> 提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

代码展示

一、采集壁纸

这里就采集一些壁纸做图片备用,嘿嘿

# 导入数据请求模块
import requests
# 导入正则表达式模块
import re

“”"

1. 发送请求

“”"

for page in range(3, 21):print(f'正在采集第{page}页的数据内容')

请求链接

    link = f'http://****/index_{page}.htm'

发送请求

    html_data = requests.get(link).text

提取ID

    img_id_list = re.findall('<a href="/desk/(\d+)\.htm" title=', html_data)

for循环遍历

    for img_id in img_id_list:

请求链接

        url = f'http://*****/desk/{img_id}.htm'

发送请求

        response = requests.get(url)

“”"

<Response [200]> 响应对象, 表示请求成功

2. 获取数据, 获取网页源代码 <服务器返回响应数据>

response.text 获取响应文本数据

response.encoding = response.apparent_encoding 自动识别码

3. 解析数据, 提取我们想要的数据内容 壁纸链接以及名字

正则表达式简单使用:

re.findall(什么数据, 什么地方) --> 找到所有我们想要的数据内容

“”"
获得到数据, 返回出现乱码了

        response.encoding = 'gbk'

链接地址 以及 标题

        img, title = re.findall('<img src="(.*?)" alt="(.*?)"', response.text)[0]print(img, title)

“”"

4. 保存数据, 把壁纸文件保存到本地文件

图片/视频/音频/特定格式文件… 发送请求, 获取二进制数据内容

解包 --> img, title = (‘链接’, ‘标题’)

“”"

发送请求, 获取数据

        img_content = requests.get(img).contentwith open('img\\' + title + '.jpg', mode='wb') as f:f.write(img_content)

我这里到第15页就暂停了,你们可以自行去等待它下载



可以看到是真的很高清

二、自动切换壁纸

# 导入文件操作模块
import os
import ctypes
# 时间模块
import time
# 随机模块
import random
# 写一个界面, 让用户自动选择文件夹, 自动设置更换时间
源码、教程、资料+V:pytho8987
# 读文目录里面文件名
path = 'D:\\自游\\彼岸壁纸\\img\\'
files = os.listdir(path)
# for循环遍历 按照顺序更换了 随机
img_file_list = [path + file for file in files]
# 当什么成立的时候 True 布尔类型
while True:  # 死循环# time.sleep()img_file = random.choice(img_file_list)print(img_file)ctypes.windll.user32.SystemParametersInfoW(20, 0, img_file, 3)
# for file in files:
#     # 延时
#     time.sleep(3)
#     img_file = path + file
#     print(img_file)
# ctypes.windll.user32.SystemParametersInfoW(20, 0, img_file, 3)

三、制作520图集

import os
import random
import pygame  # pip install pygame
from PIL import Image  # pip install pillow
text = '520快乐'  # 字体形状, 可以修改成名字
size = 30  # 字体大小

初始化

pygame.init()

定义字体,参数依次是字体、字体大小

font = pygame.font.Font('msyh.ttc', size)
print(font)

渲染字体,参数依次是被渲染的文字、是否无锯齿、字体颜色、背景颜色

(0, 0, 0) 黑色 (255, 255, 255) 白色

font_text = font.render(text, True, (0, 0, 0), (255, 255, 255))
print(font_text)

获取渲染后的字体的高度和宽度

height = font_text.get_height()  # 高度
width = font_text.get_width()  # 宽度print(font_text.get_at((1, 1))[0])

最后所有像素点会成为一个二维列表(形如[[1,2,3],[4,5,6]]),image_row_list是最外层的、总的列表

image_row_list = []
for x in range(height):# image_col_list 是 image_row_list 中的每一个列表元素image_col_list = []for y in range(width):# get_at((x,y))是返回像素点的像素值,[0]为第一个值R,# 由于渲染后的图只有黑色和白色,所以只要[0]!=255,就是黑色if font_text.get_at((y, x))[0] != 255:  # 如果像素点不是 白色image_col_list.append(1)else:image_col_list.append(0)image_row_list.append(image_col_list)""""""""""""""""""""""""""""""""""""""""""
源码、教程、资料+V:pytho8987
for row in image_row_list:print(row)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
# for row in image_row_list:
#     for col in row:
#         if col == 1:
#             print('1', end='')
#         else:
#             print(' ', end='')
#     print()
""""""""""""""""""""""""""""""""""""""""""

获取 image_row_list 列表的宽度和高度

width = len(image_row_list[0])
height = len(image_row_list)

设置最终输出的图片new_image,颜色模式RGB,宽和高分别放大100和100倍,背景色为白色。

new_image = Image.new('RGB', (100 * width, 100 * height), (255, 255, 255))

设置每一个(原图集)小图的裁剪尺寸

size = 100

遍历所有的像素点,如果像素点为1,也就是有颜色,则随机选择一张图片,将像素点填充为这张图片

for row in range(height):for col in range(width):if image_row_list[row][col] == 1:# 从本地读取文件source_image = Image.open('data\\' + random.choice(os.listdir(r'data')))# 重新修改文件大小source_image = source_image.resize((size, size), Image.ANTIALIAS)  # 是否使用抗锯齿(antialias)功能# 将图片复制到 new_imagenew_image.paste(source_image, (col * size, row * size))print('正在生成照片墙...')
new_image.save(text + '.jpg')
print('生成完毕, 请在当前文件项目下找照片墙文件')
import os
import ctypes
import cv2def Change():# 壁纸文件夹路径源码、教程、资料+V:pytho8987wallpaper_dir = r"D:\自游\彼岸壁纸\output"# 获取壁纸文件夹中的文件列表wallpapers = os.listdir(wallpaper_dir)# 随机选择一张壁纸# wallpaper_filename = random.choice(wallpapers)for wallpaper in wallpapers:# 拼接壁纸文件的完整路径wallpaper_path = os.path.join(wallpaper_dir, wallpaper)# 设置壁纸ctypes.windll.user32.SystemParametersInfoW(20, 0, wallpaper_path, 3)def convert_mp4_to_jpgs(path):video_capture = cv2.VideoCapture(path)still_reading, image = video_capture.read()frame_count = 5  # 保存的起始帧的编号005while still_reading:cv2.imwrite(f"output/frame_{frame_count:03d}.jpg", image)# read next imagestill_reading, image = video_capture.read()frame_count += 5  # 保存帧依次增加5,005>>010>>015.......Change()

尾语

【python】给你女神制作一个520图片墙吧~相关推荐

  1. python微信图标制作_Python 一键制作微信好友图片墙的方法

    wxpy.pyinstalller 库的使用. 上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症 ...

  2. 【meng_项目】python+flask+html+css制作一个简单的生日祝福语网页

    python+flask+html+css制作一个简单的生日祝福语网页 一个py文件:     test.py 一个html文件:   birthday_index.html 一张图片:       ...

  3. Python 一键制作微信好友图片墙

    上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做 ...

  4. 使用FileReader制作一个简短图片上传

    使用FileReader制作一个简短图片上传 效果示例图 代码示例图 效果示例图 代码示例图 <!DOCTYPE html> <html><head><met ...

  5. 用Python条件判断简单制作一个12星座速配工具

    今天是学习Python语言第二天,今天主要学习的是Python的条件判断,感觉和php基本上还是比较类似的.感觉Python的输出函数比较实用,在学习Python条件判断的过程中,突发奇想我可以借助P ...

  6. 利用Python为女神制作一个专属网站

    快跟随小编一起学习一下如何利用Python语言制作一个专属的网站送给女神吧! 如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!关注.点赞.收藏.评论. 目录 如觉得博主文章写的不错或对你 ...

  7. 如何自己制作一个GIF图片

    GIF图片的制作其实是非常有用的.我们在用一些聊天软件聊天的时候总会一些GIF格式的图片,也就是所谓的动态表情图来表达自己的意思,这样更加直观,也更加形象一些.并且在斗图的时候,就是比谁的GIF表情图 ...

  8. OpenCV(3):用Vs+Qt制作一个查看图片相似度的窗口程序

    OpenCV(2):用Vs+Qt制作一个显示两张图片的窗口程序 在制作了窗口程序后,在网上找了比较两张图片差异度的算法. 哈希值方法:https://blog.csdn.net/fengbingchu ...

  9. 不到100行代码 Python制作一个九宫格图片生成器,炫酷朋友圈!

    朋友圈下面的这种图片排列风格,相比大家一定会很熟悉,有关于职位招聘的 祝贺节日的, 筛自己美照的, 这种因为图片刚好为 3*3 的排列方式,所以被称为 9 宫格图片风格,图片的生成原理就是把一张图片按 ...

最新文章

  1. c1083 “tensorflow/python/framework/c pp_shape_inference.pb.h”
  2. Deno 兼容浏览器具体指的是什么?
  3. rust(67)-rust元组与空元组
  4. EHcache缓存框架详解
  5. CocoStudio练习笔记3 - 动画编辑器
  6. LinearLayout removeAllViews后再 addView页面不展示
  7. CF468A 24 Game
  8. java 写服务器向客户端发送消息,java服务器向客户端发送消息
  9. 多伦多大学计算机专音乐专业,终于懂了加拿大音乐专业学院推荐
  10. 着色器Encoding floats to RGBA
  11. 洛谷P1605 迷宫 纯C语言题解
  12. Opencv Surf特征实现图像无缝拼接生成全景图像(三)
  13. [bzoj5314][Jsoi2018]潜入行动_树形背包dp
  14. K-means高维聚类与PCA降维
  15. Visual Studio 2022 IDE 下载安装与环境配置,C语言/C++集成环境配置,VS2022。详细环境配置教程,最适合写c语言的编译器
  16. 让ie6也支持websocket
  17. PyQt (PySide) 使用 QML 仿制一个密码框动画
  18. SCIM输入法架构分析(上)
  19. 锐捷胖AP部署及配置
  20. 使用while语句与do...while语句计算多个整数的和

热门文章

  1. c语言+usb驱动开发,usb驱动程序分析
  2. 度言外呼系统服务器错误,电话外呼营销系统,电话营销获客的一把“利剑”
  3. 灰狼算法 c语言 代码,基于灰狼优化的模糊C—均值聚类算法
  4. python数据分析之曲线拟合(1):二次函数拟合
  5. eclipse打开文件的快捷键是什么
  6. 【Java-zip文件解压】
  7. mysql数据库实验报告二
  8. Cesium实现动态绘制轨迹线
  9. Andorid-的面试题
  10. git添加文件并且提交