网站首页 > 开源技术 正文
现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧。全打印出来实在是太费钱了。而闲置的旧电脑完全可以利用起来播放这些照片。下面就介绍利用Conky和Python实现随机播放相片的功能
Conky
Conky是一个显示系统状态的Linux软件,可以图形化显示CPU, 内存,网络流量等。下面是一个来自官方网站的示例图。
conky.png
它的配置文件语法很简单,分为配置和显示两部分
conky.config={
own_window=true,
own_window_class='Conky',
own_window_type='override',
own_window_colour='ffffff',
own_window_transparent=true,
double_buffer=true,
update_interval=1,
use_xft=true,
};
conky.text = [[
${execpi 300 /home/lxq/myscripts/change_photo.py}
]]
conky.config里面是实现显示图片的必要部分。conky.text 则是用execpi每300秒调用一个Python代码显示图片。 把上面的代码保存为一个文件conkyfile。 执行conky -c conkyfile 即可
Python端代码
change_photo.py 必须返回${image sample.jpg -p 20, 400 -s 400x400} 这样的格式。sample.jpg 可以替换成你需要的照片的完整文件路径。p参数即position,照片在conky显示区域的相对位置。 s参数为size,即照片的宽度和高度。
下面是change_photo.py的完整代码#! /usr/bin/python3
import os,random
from PIL import Image
from PIL import ExifTags
def rotate(image):
for orientation in ExifTags.TAGS.keys() :
if ExifTags.TAGS[orientation]=='Orientation' : break
exif=dict(image._getexif().items())
if exif[orientation] == 3 :
image=image.rotate(180, expand=False)
elif exif[orientation] == 6 :
image=image.rotate(270, expand=False)
elif exif[orientation] == 8 :
image=image.rotate(90, expand=False)
return image
folder="/home/user/photo/Camera"
photo=random.choice([f for f in os.listdir(folder) if f.endswith(".jpg")])
photo=os.path.join(folder,photo)
img=Image.open(photo)
img=rotate(img)
img.thumbnail((500,700))
tmpimage=os.path.join("/tmp","slide.jpg")
img.save(tmpimage)
img=Image.open(tmpimage)
width,height=img.size
print(photo)
print(f"${{image /tmp/slide.jpg -p 10,420, -s {width}x{height} -n }}")
- bash会读取第一行,拿到python的完整路径,然后执行下面的代码。记着 要执行chmod +x change_python.py ,给这个python可执行权限。
- 智能手机和部分高端相机有传感器可以感知你拍照时是横拍还是竖拍,然后存在相片的exif信息里。rotate函数会读取照片的exif获取拍照方向信息,然后旋转照片到正常角度。不然就会显示倒立的人了。
- 第19行,指定你的照片目录地址,注意是完整路径。
- 第21行,random.choice 会从列表中随机选择一个。 这里要过滤一下,只取jpg文件。
- thumbnail 会生成缩略图并保持图片比例
- 第29行,存到tmp目录中
- 第32行,取出图片宽度和高度
- 第36行,输出Conky需要的格式
小结
Conky是很强大的工具。虽然官方推荐lua,但你可以用你喜欢的任何开发语言输出它支持的格式。Python有足够的库可以很快的开发,就差你的想象力了。
猜你喜欢
- 2024-12-22 专为系统管理员设计的LINUX发行版SYSLINUXOS
- 2024-12-22 推荐8个开源的Linux桌面监控工具,每个都很精美!
- 2024-12-22 你喜欢哪款 Linux 桌面?萝莉风?御姐风?
- 2024-08-04 给大家分享几个漂亮的 Arch Linux 发行版
- 2024-08-04 体验优麒麟开源系统(优麒麟教程)
- 2024-08-04 Linux环境下100个开源免费专业软件推荐之23款系统软件1-10
- 2024-08-04 号称目前最漂亮的的Linux系统:Elementary OS安装体验,失望了!
- 2024-08-04 每个电脑Linux管理员应该知道的20个Linux系统命令监视工具
- 2024-08-04 SolydXK 9正式发布:基于Debian 9(debian9和10)
- 2024-08-04 运维人员-推荐6个服务器监控工具(服务器监控工具有哪些)
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)