[Python小项目] 从桌面壁纸到AI绘画
从桌面壁纸到AI绘画
一、前言
1.1 确认问题
由于生活和工作需要,小编要长时间的使用电脑,小编又懒,一个主题用半年的那种,所以桌面壁纸也是处于常年不更换的状态。即时改变主题也是在微软自带的壁纸中选择,而这些自带的壁纸早就已经看腻了。于是,问题产生了:如何让电脑自动变更自己喜欢的壁纸?
 经过思考,大致可以有2个方案:
 方案一:通过下载壁纸软件,让壁纸软件自动切换
 方案二:下载壁纸后保存到本地,通过系统自动切换
二、方案一:通过壁纸软件自动更换
在网上找寻一通后,发现有几款壁纸软件挺不错的。比如:元气桌面、飞火动态壁纸、UPUPOO动态桌面。但是经过试用,发现该方案还是有不如人意的地方:
 1、这些壁纸软件在没有购买成为会员之前,大部分图片都不能下载作为壁纸,并且大部分只能按月购买会员,费用还不低(十几元~几十元/月不等)。Steam上大名鼎鼎的wallpaper engine壁纸软件才19元,而且是终生。不知道这些国产壁纸软件凭啥卖这么贵。
 2、仅有元气桌面壁纸软件提供了订阅功能(选择喜欢的类型或风格),其它壁纸软件不支持。
虽然该方案的不太适合,但是该说不说。这些壁纸软件里有些图片还是很不错的,有真人图、二次元图、AI图:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
三、方案二:直接下载壁纸,通过系统自动切换
1、找到壁纸网站,最好符合以下优点:
- 资源多
- 质量高
- 免费、无版权
- 无水印
- 易下载
- 速度快
- 风格多、题材多、类型丰富
- 可筛选
- 免注册和登录
2、找到想要的图片,点击下载到本地电脑上。保存到单独的文件夹中。
 3、进入Windows设置\个性化:
 
 
4、在背景处选择幻灯片放映:
 
5、点击浏览选择之前用来存放下载后的壁纸文件夹。
 
6、此时在下方可以看到幻灯片放映的相关设置,可以设置图片切换频率、是否无序播放、契合度推荐选择填充。
 
7、设置完成。接下来,系统会每隔一段时间在目标文件夹中挑选一张图片作为壁纸。也可以在桌面上手动切换,方法就是右键后,在弹出的菜单中点击下一个桌面背景。如下:
 
3.1 自动下载壁纸
方案二虽然不错,但是需要手动下载壁纸,还是比较麻烦的。于是,打算通过Python自动批量下载,省时省力(人生苦短,我用Python)。
 由于是要从网站上下载图片,那么一般是使用requests或selenium库。小编这里采用的是selenium库。再结合多线程,10几分钟也就下载好了目标网站上的所有想要的3000多张壁纸。
# Encoding: utf-8
# Author: 思必得
# Date: 2023/9/20 16:36
# Project name: 下载图片
# IDE: PyCharm
# File name: 下载图片.py
# Python required version:未指定
# 模块说明:
"""
从指定的图片网站上下载壁纸图片
"""
# 导入模块:
from selenium.webdriver.common.by import By
from mdBrowser import csBrowserBySelenium
from mdTools import ftSoundBeep
from threading import Thread
from tqdm import trange
import requests
import time
import re
import os
# 更新日志:
"""
1、2023/9/20:a、创建文件
"""
# 待修改:
"""
"""
csbbs = csBrowserBySelenium()class DownloadPic:def __init__(self):self.headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36','Referer': '图片网站',}self.pic_urls = []  # 初始pic地址self.pic_urls_api = []  # 重定向后的完整pic地址(带参数)def get_pic_url(self):el_next = csbbs.mtElIsExist('//*[@id="app"]/div[1]/main/div/div/div/div[5]/div/div/div/div/div[1]/div[2]')div = csbbs.mtElIsExist('//*[@id="app"]/div/main/div/div/div/div[4]')divs = div.find_elements(by=By.CLASS_NAME, value='img-box')for div in divs:a = div.find_element(By.CLASS_NAME, value='down-span').find_element(By.TAG_NAME, value='a')self.pic_urls.append(a.get_attribute('href'))el_next.click()time.sleep(3)def get_pic_api_th(self, url):r = requests.get(url=url, headers=self.headers, allow_redirects=False)  # 禁用重定向self.pic_urls_api.append(r.headers['Location'])def download_pic_th(self, url):r = requests.get(url=url, headers=self.headers)pic_name = os.path.join(r'G:\资源素材\壁纸\zzzmh', re.split(r'[?/]', url)[5])with open(pic_name, 'wb') as f:f.write(r.content)def main(self):"""通过翻页获取到每页每张图片的初始地址"""for _ in trange(112):self.get_pic_url()"""通过图片的初始地址获取到图片的完整地址"""self.pic_urls_api = []ths = []for _ in self.pic_urls:th = Thread(target=self.get_pic_api_th, args=(_,))ths.append(th)th.start()for th in ths:th.join()self.pic_urls = []"""通过图片的完整地址下载到本地电脑"""for _ in self.pic_urls_api:th = Thread(target=self.download_pic_th, args=(_,))ths.append(th)th.start()for th in ths:th.join()ftSoundBeep()if __name__ == '__main__':dp = DownloadPic()dp.main()
注意事项:
 在多线程爬取时,一定要注意等待,不要一次太快爬取太多,否则容易被阻止访问。
 效果如下:
 
 
四、方案三:AI绘画
4.1 引言
无论是壁纸软件也好,壁纸网站也好,发现有很多都是AI制作的壁纸,而且质量还很高。于是,突发奇想,是否可以通过AI绘画的形式,让AI来直接绘制壁纸呢?
 AI绘画的优势很明显,没有版权问题,自由度高,定制化高。
 于是小编便一头扎进了AI绘画这个大坑之中。。。
 总之是一言难尽,AI绘画就是个大坑,期间查询了很多资料,看了很多教程、文章、视频。发现AI绘画的水很深,一般人想要入坑了解、学习、掌握的门槛特别高。
 不过,好在有简易入门使用的方法,现分享出来给大家。不过在此,需要先对AI绘画有个初步的了解。
4.2 AI绘画说明
如果我们要找别人绘画,我们会先去找一个画家,而每个画家有不同的风格,有的擅长写实、有的擅长人物、有的擅长二次元、有的擅长风景等等。而在AI绘画中,不同的风格就是模型,你选择不同的模型,就会导致AI绘画时作出不同风格的画出来。
 有了画家还不行,我们还需要告诉画家我们要画一副什么画,比如:我想画一个中国年轻男人在一个夏天大雨过后在草地上骑马奔驰的画面。那么这里的一个、中国、年轻、男人、夏天、大雨、草地、骑马等都是提示词。在AI绘画中也称为:标签、Tag、Prompt,都是同一个意思。这就和你让画家画画一样,给的提示词越详细、越具体,这个画家就更容易画出你想要的画面。
 当然,提示词有正面和负面之分。正面的就是我们想要出现在画面中,而负面就是不想要出现在画面中。
 提示词还有权重的区别,权重越大,这个提示词提到的内容占比就越大。
4.3 电脑配置要求
操作系统:win10及以上
 CPU:无强制要求
 内存:>8G
 显卡:独立N卡,显存>4G
4.4 实操步骤
1、下载B站秋叶大佬(人称:赛博佛祖)的最新Stable Diffusion整合包v4.4
`整合包说明:`
所谓的整合包就是打包了运行必须得Python、git环境,并且预置好模型,添加了一些常用的插件。
所有环境都可以在这个整合包内随用随删,环境是`独立`且`虚拟`的,不会产生任何冲突。
比自己按照教程手动部署不知道要方便了多少倍。不知道拯救了多少个像小编一样在手动部署中陷入痛苦与挣扎的人(一堆的报错。。。)。可谓功德无量。
2、将下载好的整合包解压,最好放在固态硬盘中,可以加快运行速度。
 3、双击打开启动器运行依赖-dotnet-6.0.11.exe以安装启动器运行时需要的依赖。
 4、进入到sd-webui-aki-v4.1(这里小编用的是v4.1版本),双击打开A启动器.exe,主界面如下:
 
5、点击右下角一键启动:
 
6、等待片刻后会自动在默认浏览器中打开网站,进入到AI绘画的页面中:
 
7、里面的内容都是中文的,一切的配置都不需要动。我们看到左上角可以选择模型,使用自带的sd-v1-4模型即可。然后在正向提示词和反向提示词中填入你想要的即可。新手刚开始不知道要怎么填,这里,小编提供1组:
 正向:
 (photo photography), (Chinese girl), 1 girl, solo, beautiful, lovely, lifelike facial details, delicate facial features, long black hair, big chest, facing the audience, smile, powder blusher, delicate collarbone, pink skirt, big legs, slippers, interior, living room, huge sofa, tea table, fruit, banana, grape, pitaya, vase, flower arrangement, masterpiece, official art, 8K, CG rendering, complex details, (Photography: 1.1), (Gorgeous Chinese Women: 1.3), Instagram, (Photo Realism: 0.8)
 反向:
 bad anatomy, error, jpeg artifacts, low quality, lowres, normal quality, worst quality, fewer digits, extra digits, bad hands, bad feet, cropped, missing fingers, signature, text, username, watermark, futa
 
8、填写后,点击右侧的生成,等待程序完成即可。生成的速度和电脑配置,尤其是显卡的配置有关,一般要1分钟及以上。
 
9、生成的图片保存在:sd-webui-aki-v4.1\outputs\txt2img-images中。
 好了,以上就是AI绘画中,文生图的基本用法。可以看到还是很简单的。这个AI程序还有更多的功能,比如:更换模型、图生图、后期处理、PNG图片信息、图片放大等等,大家可以自行去了解。
4.5 常用提示词
Beautiful
 Radiant
 Elegant
 Charming
 Lovely
 Graceful
 Alluring
 Stunning
 Enchanting
 Mesmerizing
 Exquisite
 Ravishing
 Captivating
 Bewitching
 Gorgeous
 Attractive
 Fascinating
 Delicate
 Disarming
 Winsome
 Enticing
 Poised
 Sophisticated
 Classy
 Glamorous
 Stylish
 Fashionable
 Trendy
 Chic
 Enigmatic
 Mysterious
 Intriguing
 Dreamy
 Sassy
 Witty
 Humorous
 Fun-loving
 Lively
 Bubbly
 Playful
 Animated
 Energetic
 Dynamic
 Ambitious
 Driven
 Confident
 Independent
 Strong-minded
 Fearless
 Bold
 Daring
 Adventurous
 Bold
 Spontaneous
 Unpredictable
 Creative
 Artistic
 Visionary
 Innovative
 Resourceful
 Practical
 Logical
 Analytical
 Intellectual
 Smart
 Witty
 Clever
 Sharp
 Keen
 Perceptive
 Intuitive
 Empathetic
 Compassionate
 Understanding
 Attentive
 Patient
 Tolerant
 Forgiving
 Caring
 Thoughtful
 Kind-hearted
 Generous
 Charitable
 Philanthropic
 Helper
 Selfless
 Modest
 Humble
 Respectful
 Trustworthy
 Reliable
 Loyal
 Faithful
 Honest
 Sincere
 Genuine
 Authentic
 Natural
 Unassuming
 Gracious
4.6 几组模型及出图
4.6.1 国风
模型:guofeng3
 提示词:best quality,masterpiece,highres,1girl,blush,(seductive smile:0.8),star-shaped pupils,red china hanfu,hanfu,chinese clothes,hair ornament,necklace,jewelry,Beautiful face,upon_body,tyndall effect,photorealistic,dark studio,rim lighting,two tone lighting,(high detailed skin:1.2),8k uhd,dslr,soft lighting,high quality,volumetric lighting,candid,Photograph,high resolution,4k,8k,Bokeh,
 反向提示词:
 (((simple background))),monochrome,lowres,bad anatomy,bad hands,text,error,missing fingers,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,lowres,bad anatomy,bad hands,text,error,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,ugly,pregnant,vore,duplicate,morbid,mut ilated,tran nsexual,hermaphrodite,long neck,mutated hands,poorly drawn hands,poorly drawn face,mutation,deformed,blurry,bad anatomy,bad proportions,malformed limbs,extra limbs,cloned face,disfigured,gross proportions,(((missing arms))),(((missing legs))),(((extra arms))),(((extra legs))),pubic hair,plump,bad legs,error legs,username,blurry,bad feet,
 
提示词:
 best quality,masterpiece,highres,cg,1girl,weapon,sword,long hair,dress,water,solo,jewelry,white dress,earrings,hair ornament,splashing,upper body,hair bun,black hair,lighting,candid,Photograph,high resolution,4k,8k,Bokeh,
 反向提示词:
 (((simple background))),monochrome ,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, lowres, bad anatomy, bad hands, text, error, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, ugly,pregnant,vore,duplicate,morbid,mut ilated,tran nsexual, hermaphrodite,long neck,mutated hands,poorly drawn hands,poorly drawn face,mutation,deformed,blurry,bad anatomy,bad proportions,malformed limbs,extra limbs,cloned face,disfigured,gross proportions, (((missing arms))),(((missing legs))), (((extra arms))),(((extra legs))),pubic hair, plump,bad legs,error legs,username,blurry,bad feet
 
提示词:
 best quality,masterpiece,highres,cg,1girl,long hair,dress,water,solo,jewelry,white dress,earrings,hair ornament,splashing,upper body,hair bun,black hair,lighting,candid,Photograph,high resolution,4k,8k,Bokeh,lora:moreDetails.5pEa:0.8,
 反向提示词:
 (((simple background))),monochrome,lowres,bad anatomy,bad hands,text,error,missing fingers,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,lowres,bad anatomy,bad hands,text,error,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,ugly,pregnant,vore,duplicate,morbid,mut ilated,tran nsexual,hermaphrodite,long neck,mutated hands,poorly drawn hands,poorly drawn face,mutation,deformed,blurry,bad anatomy,bad proportions,malformed limbs,extra limbs,cloned face,disfigured,gross proportions,(((missing arms))),(((missing legs))),(((extra arms))),(((extra legs))),pubic hair,plump,bad legs,error legs,username,blurry,bad feet,
 
4.6.2 卡通风
模型:QteaMix
 提示词:(masterpiece:1.2, best quality:1.2) , {fox girl} , {{fox ear}} , very long hair , grey hair , medium breasts , {{ miko }} ,black eyes ,((masterpiece)), (((best quality))), ((ultra-detailed)), ((illustration)), ((disheveled hair)) , solo , {japanese shrine} , perfect hand , perfect fingers ,{{{ japanese festival , night time }}}, smile , solo focus , lie down , lying
 负面提示词:
 (worst quality, low quality, large head, extra digits:1.4), bad hands, mutated hand, (six or more fingers:1.7), (tangled fingers:1.3), complex fingers, (spindly fingers:1.3), broken fingers, missing fingers, text , monochrome
 
提示词:
 embarrassed blush @_@ covering wavy mouth,12-year-old girl with wavy red-brown hair, pink dress. Big blue eyes, rosy cheeks, and a white tail. Outfit includes a pink dress, black collar with cat medallion, sky blue ribbon with red heart,a large sky blue bow in one ear,small chest,sound effects
 负面提示词:
 worst quality, large head, low quality, extra digits, bad eyes, EasyNegativeV2, ng_deepnegative_v1_75t
 
4.6.3 科幻风
基底模型:SDXL 1.0
 提示词:
 Hyperrealistic art BJ_Sacred_beast, red_eyes, outdoors, horns, sky, teeth, day, cloud, no_humans, cloudy_sky, scenery, smoke, mountain, dragon,cinematic lighting,strong contrast,high level of detail,Best quality,masterpiece,lora:SDXL_Sacred_beast:0.7, . Extremely high-resolution details, photographic, realism pushed to extreme, fine texture, incredibly lifelike
 反向提示词:
 simplified, abstract, unrealistic, impressionistic, low resolution, embedding:BadDream,embedding:FastNegativeV2,
 
提示词:
 Hyperrealistic art skin gloss,light persona,(crystalstexture skin:1.2),(extremely delicate and beautiful),pov,(white_skin:1.2),1girl,solo,long_hair,bare shoulders,red_dress,skirt,(((wings,red_wings))),(full shot),looking_at_viewer,BJ_Sacred_beast,full body,run,suspension,outdoors,sky,day,cloud,fire,water,blue_sky,ocean,cloudy_sky,cinematic lighting,strong contrast,high level of detail,Best quality,masterpiece,lora:SDXL_Sacred_beast:0.7, . Extremely high-resolution details, photographic, realism pushed to extreme, fine texture, incredibly lifelike
 反向提示词:
 simplified, abstract, unrealistic, impressionistic, low resolution, embedding:BadDream,embedding:FastNegativeV2,
 
相关文章:
 
[Python小项目] 从桌面壁纸到AI绘画
从桌面壁纸到AI绘画 一、前言 1.1 确认问题 由于生活和工作需要,小编要长时间的使用电脑,小编又懒,一个主题用半年的那种,所以桌面壁纸也是处于常年不更换的状态。即时改变主题也是在微软自带的壁纸中选择,而这些自…...
 
【Docker 内核详解】namespace 资源隔离(五):User namespaces
【Docker 内核详解 - namespace 资源隔离】系列包含: namespace 资源隔离(一):进行 namespace API 操作的 4 种方式namespace 资源隔离(二):UTS namespace & IPC namespacenamespace 资源隔…...
 
网络原理必知会
衔接上文:网络原理必知会_念君思宁的博客-CSDN博客 流量控制: 流量控制也是保证可靠性的机制 对于滑动窗口,批量发送数据而言,窗口越大,相当于批量发送的数据越多,整体的速度也就越快了,但是&…...
 
ELK 日志分析系统介绍与部署
目录 一、ELK 简介: 1.开源工具介绍: 2.其它组件: 2.1 Filebeat: 2.2 Fluentd: 2.3 缓存/消息队列(redis、kafka、RabbitMQ等): 3. filebeat 结合 logstash 带来好处: 二、为什么要…...
 
Android 内存治理之线程
1、 前言 当我们在应用程序中启动一个线程的时候,也是有可能发生OOM错误的。当我们看到以下log的时候,就说明系统分配线程栈失败了。 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory这种情况可能是两种原因导致的。…...
三、K8S之ReplicaSet
ReplicaSet 一、概述 Kubernetes最核心的功能是编排,编排操作都是依靠控制器对象来完成,高级控制器控制着基础的控制器,基础控制器再去控制Pod,Pod里面再包容器。K8S项目里API对象层级大概就是这样。 而ReplicaSet这个控制器是…...
 
【基础篇】四、本地部署Flink
文章目录 1、本地独立部署会话模式的Flink2、本地独立部署会话模式的Flink集群3、向Flink集群提交作业4、Standalone方式部署单作业模式5、Standalone方式部署应用模式的Flink Flink的常见三种部署方式: 独立部署(Standalone部署)基于K8S部署…...
简述什么是迭代器(Iterator)?
迭代器(Iterator)是一种设计模式,Java 中的迭代器是集合框架中的一个接口,它可以让程序员遍历集合中的元素而无需暴露集合的内部结构。使用迭代器可以遍历任何类型的集合,例如 List、Set 和 Map 等。 通过调用集合类的 iterator() 方法可以获取一个迭代器,并使用 hasNext…...
 
DarkGate恶意软件通过消息服务传播
导语 近日,一种名为DarkGate的恶意软件通过消息服务平台如Skype和Microsoft Teams进行传播。它冒充PDF文件,利用用户的好奇心诱使其打开,进而下载并执行恶意代码。这种攻击手段使用了Visual Basic for Applications(VBA࿰…...
LeetCode——动态规划篇(六)
刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 300. 最长递增子序列 - 力扣(LeetCode) 674. 最长连续递增序列 - 力扣(LeetCode) 718. 最长重复子数组 - 力扣(…...
sql 注入(2), 文件读写 木马植入 远程控制
sql 注入 文件读写 木马植入 远程控制 一, 检测读写权限 查看mysql全局变量 SHOW GLOBAL VARIABLES LIKE %secure%secure_file_priv 空, 则任意读写secure_file_priv 路径, 则只能读写该路径下的文件secure_file_priv NULL, 则禁止读写二, 读取文件, 使用 load_file() 函数…...
 
求直角三角形第三点的坐标
文章目录 求直角三角形第三点的坐标1. 原理2. 数学公式3. 推导过程 求直角三角形第三点的坐标 1. 原理 已知内容有: P1、P2 两点的坐标; dis1 为 P1与P2两点之间的距离; dis2 为 P2与P3两点之间的距离; 求解: …...
 
【Kotlin精简】第3章 类与接口
1 简介 Kotlin类的声明和Java没有什么区别,Kotlin中,类的声明也使用class关键字,如果只是声明一个空类,Kotlin和Java没有任何区别,不过定义类的其他成员会有一些区别。实例化类不用写new,类被继承或者重写…...
 
关于面试以及小白入职后的一些建议
面试的本质 面试的过程是一个互相选择的过程;面试官的诉求是,了解应聘者的个人基本信息、工作态度、专业能力及其他综合能力是否与公司招聘岗位匹配;面试者的诉求是,拿下招聘岗位offer,获得工作报酬; 面试…...
 
Excel 从网站获取表格
文章目录 导入网站数据导入股票实时行情 用 Excel 获取网站数据的缺点:只能获取表格类的数据,不能获取非结构化的数据。 导入网站数据 转到地址之后: 实测该功能经常导致 Excel 卡死。 导入股票实时行情...
 
rsync 备份工具(附rsync+inotify 实时同步部署实例)
rsync 备份工具(附rsyncinotify 实时同步部署实例) 1、rsync概述1.1关于rsync1.2rsync 的特点1.3工作原理 2、rsync相关命令2.1基本格式和常用选项2.2启动和关闭rsync服务2.3下行同步基本格式2.4上行同步基本格式2.5免交互2.5.1指定密码文件2.5.2rsync-daemon方式2.…...
 
Java架构师缓存性能优化
目录 1 缓存的负载策略2 缓存的序列化问题3 缓存命中率低4 缓存对数据库高并发访问5 缓存数据刷新的策略5.1. 实时策略5.2. 异步策略5.3. 定时策略6 何时写缓存7 批量数据来更新缓存8 缓存数据过期的策略9 缓存数据如何恢复10 缓存数据如何迁移11 缓存冷启动和缓存预热想学习架…...
探索服务器潜能:创意项目、在线社区与其他应用
目录 一、部署自己的创意项目 优势: 劣势: 结论: 二、打造一款全新的在线社区 优势: 劣势: 结论: 三、其他用途 总结: 随着互联网的发展,越来越多的人开始拥有自己的服务器…...
 
「网络编程」网络层协议_ IP协议学习_及深入理解
「前言」文章内容是网络层的IP协议讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、IP协议简介二、IP协议报头三、IP网段划分(子网划分)四、特殊的IP地址五、IP地址的数量限制六、私有IP地址和公网IP地址七、路由八、分…...
Go 1.21 新内置函数:min、max 和 clear
max 函数 func max[T cmp.Ordered](x T, y …T) T 这是一个泛型函数,用于从一组值中寻找并返回 最大值,该函数至少要传递一个参数。在上述函数签名中,T 表示类型参数,它必须满足 cmp.Ordered 接口中定义的数据类型要求࿰…...
 
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
 
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
 
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
 
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
 
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
