现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个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有足够的库可以很快的开发,就差你的想象力了。

python特效电子相册_用Python和Conky做个电子相册,美化你的Linux桌面相关推荐

  1. python特效源代码_人工智能python代码实现魔幻换天视频特效

    魔幻换天视频: python实现魔幻换天特效,特效前,特效后对比视频 视频前后特效对比图 前几期的视频,我们分享了python代码实现的魔幻换天的视频特效,如何使用python代码实现?本期文章我们简 ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  4. python做相册_用Python和Conky做个电子相册,美化你的Linux桌面

    现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧.全打印出来实在是太费钱了.而闲置的旧电脑完全可以利用起来播放这些照片.下面就介绍利用Conky和Python实现随机播放相片的功能 ...

  5. python电子相册制作代码大全_用Python和Conky做个电子相册,美化你的Linux桌面

    现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧.全打印出来实在是太费钱了.而闲置的旧电脑完全可以利用起来播放这些照片.下面就介绍利用Conky和Python实现随机播放相片的功能 ...

  6. python 人像合成_用 Python 实现抖音上的“人像动漫化”特效,原来这么简单!

    作者 | 黄伟呢 来源 | 数据分析与统计学之美前几天,女友拉着我和她玩儿抖音,就是这个人像动漫化的操作,顿时觉得很好玩儿.我心想:Python 既然这么强大,是不是也可以使用 Python 程序来实 ...

  7. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

  8. python 网页编程_通过Python编程检索网页

    python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...

  9. python机器学习预测_使用Python和机器学习预测未来的股市趋势

    python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...

最新文章

  1. R语言导入.dta文件实战
  2. java实验33 类的继承2_java实验2 类的继承性
  3. matlab基数排序,c语言 数据结构 利用随机函数产生N个随机整数,对这些数进行多种方法进行排序...
  4. 【线程呓语】与线程相关的一些概念
  5. 在Sql Server 2005使用公用表表达式CTE简化复杂的查询语句
  6. 配置python开发环境搭建_Eclipse配置Python开发环境
  7. python打乱列表的方法_python打乱列表
  8. jQuery封装的选项卡方法
  9. IDEA给项目添加lib/jar
  10. (转)黄金交易革命即将到来?区块链技术让你像刷卡一样“刷黄金”
  11. 自定义Promise
  12. 移动边缘计算(MEC)
  13. 十代主板改win7_微星(MSI)z490主板装win7系统及bios设置教程(支持10代usb驱动)
  14. ZEMAX光学设计实践
  15. 三阶魔方大中小魔公式_三阶魔方还原图文教程-番茄魔方
  16. python直角三角形的两个直角边、求斜边_直角三角形斜边公式计算器 两个直角边边长的平方加起来等...
  17. mysql innodb 唯一键里的字段为什么不能为NULL
  18. 论文笔记 EMNLP 2020|Resource-Enhanced Neural Model for Event Argument Extraction
  19. A/B/C/D/E五个人互相传球
  20. SitePoint播客#70:青年,企业和播客

热门文章

  1. 和dump文件什么区别_将java进程转移到“解剖台”之前,法医都干了什么?
  2. 457. 括号匹配二
  3. 1029 最大公约数和最小公倍数问题(gcd) luogu洛谷
  4. Windows Gadget 制作二
  5. Python编程常见错误表现形式与原因分析
  6. 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统1
  7. Python+sklearn使用支持向量机算法实现数字图片分类
  8. 数据包络分析方法与maxdea软件_SEM常用的4种数据分析方法,让你的优化工作事半功倍!...
  9. redis依赖包_092-Redis集群、JedisCluster
  10. 大数的加减法C语言程序设计,超大数相加C语言程序设计