求一个本地壁纸加载软件

你在想什么?

是在每次到预定时间的时候去加载下一张图片,但这时候不更换,只有等图片加载完成以后才进行更换的操作。这样不但不至于卡顿,甚至可以加入一定的动效。而且资源消耗也并不算大。

有什么区别呢…
你觉得连系统切换壁纸都会有卡顿的这种预读有啥用呢…
"卡"根本就不是在预读上
这句话可能有误,误读有作用,但不大.

而是切换瞬间的界面重绘上…
让他在玩游戏时不换壁纸就行了.
再预读也没办法解决在玩游戏换壁纸的界面重绘
那是系统层面上的处理了

嘿嘿嘿,所以我用壁纸引擎,就是网页,自由度灰常高,而且不现实的时候还可以设定暂停

主要的卡是在于系统UI在更换壁纸的时候areo效果的重新渲染,例如半透明效果,云母效果什么的,本质来说都不是半透明,是每个窗口的背景替换成了一张预先渲染后模糊变暗效果之后的固定图片。就是渲染这张图片的一瞬间,调了一定GPU算力(而且感觉系统在这个位置的优化也不是特别好)。

如果用网页更换壁纸,不懂UI会怎么渲染,瞎猜有三种结果,UI一直不断根据实时变化渲染。要么就只是根据第一帧渲染了,后面怎么改变都不渲染新的背景。要么不管网页怎么变化,实际只渲染系统本身配置的壁纸。

原来说的是这个问题

我电脑集成显卡,所以没开特效,反正我觉得 Windows 做的一点也不好看,开个毛毛球

似乎是后一种策略……壁纸引擎可以自动设定主题色,但也就那样,所以这些我都固定。

你们讨论的真是看不懂。。。

简单来说,MPV加载一个80G的4K视频,或者一个50MB的图片,会卡,那么真的会卡,因为你硬件有瓶颈。如果不卡,那是真的不卡。
因为MPV也是可以作为桌面的子控件加载显示的。都是这个原理。

如果你非要调用系统的壁纸API,那肯定卡啊,我前面都说了它会产生格式转换和文件读写。

你在说什么呀…
你自己用mpv试试呀
无论是视频还是图片
你以为mpv就不转换了嘛…
那解码器是干嘛用的…
解码到内存和本地的区别而已
读取的时候大家都一样
可能还真不一样,可以试试资源管理器的缩略图预览和第三方文件管理器预览(资源管理器生成缩略图没看见IO读写…不知道是用啥读的)
转换的时候你以为WINDOWS那么蠢嘛,
它会把超大图转换成适合的图片,内存占用会更少
自己试试就知道了
路径在这,超大图片会先转成较小的
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Themes

第三方还真不一定比它更智能,很多第三方是读入原始文件的,内存占用大的要死
更不用说系统自带的填充方式,(比方设置长图为壁纸)
真的非常非常智能
用第三方实现麻烦的要死

以下GIF为mpv浏览图片时的波动
动画

你把壁纸路径贴出来我就知道你为什么卡了。
解码不等于转换。
你可以试试用ffmpeg播放一个MP4,和将这个MP4转换为AVI,看看二者有什么差别。

尝试了,好评。
切换虚拟桌面时有时候会失效(据说是win写入了注册表的原因),但是马上能掰回来,不用手调。
PS:好像引发了别的讨论,那么性能问题到底是不是win32api的锅?

我这还没特殊对待就是很平常的几百K的图片
所以内存占用上还看不出
让你看看用MPV浏览大图 30M+的效果

至于mpv播放MP4
我建议你看看GPU在干什么
硬解和软解的区别罢了
你用软解试试看

以下为MPV浏览大图,CPU,内存全上去了
动画

呃那大概就是MPV的比喻不恰当了,你光看ffmpeg那个比喻就行了。

我之前找过类似的软件,使用体验最好的是 John’s Background Switcher,你可以试试

还有啊,你不要把解码和转换混淆了。啊也更正下那个ffmpeg比喻。就是播放一个MP4,和把这个MP4转换成的宽高都-10的新MP4,之间的差别。

其实用图片浏览器说明会更好
加载时这个CPU占用无论如何都是要占用了
所以mpv也不会例外
资源管理器反而在IO占用上好像有黑科技(IO占用不正常,比其他的少很多)
加载完成后系统会加载较小的图片,这样内存占用比图片浏览器要小很多很多.

图片浏览器
jpegview

资源管理器(用everything设置壁纸,调用API)
explorer

系统的IO占用真的很奇怪.
我上面已经说过了第三方文件管理器在生成图片缩略图时IO占用会影响其他程序
而资源管理器的IO对其他程序的影响很小(所以怀疑其有黑科技)

因为必需要转换呀…
上面说了那么多还不清楚嘛…
减少内存占用呀
不然它转换着玩嘛…
难道像上面那样一张图片占用600MB?

我的壁纸工具也是有过调用壁纸API,卡得鼠标出漏斗的时期的。
我这明明是血淋淋的经验分享。看来我表达能力不行 = =
我总结下,我的壁纸软件加载一个壁纸有三步,1读取文件,2解码,3张贴。
而壁纸API的步骤,1读取文件,2解码,3张贴,4转换,5重新编码,6写入到文件。第5步非常消耗性能。

600M,我的不会啊,我的工具加载个50M图片,读取时占用内存会大涨,但张贴出去后,删除内存,立即就恢复到4M。


我用了好些年的壁纸切换器自带中文 免费

1 个赞

这个可以
壁纸切换 - 动作信息 - Quicker (getquicker.net)