#!/usr/bin/env python3
import os
import sys
from PIL import Image
percent = float(sys.argv[1])/100
pic_list = []
# list all .png files in ~/Pictures
pic_dir = os.environ["HOME"]+"/Pictures"
files = [pic_dir+"/"+f for f in os.listdir(pic_dir) if \
all([f.endswith(".png"), not f.startswith("resized")])]
# create a sorted list + the creation date of relevant files
pics = [[f, int(os.stat(f).st_ctime)] for f in files]
pics.sort(key=lambda x: x[1])
# choose the latest one
resize = pics[-1][0]
# open the image, look up its current size
im = Image.open(resize)
size = im.size
# define the new size; current size * the percentage
newsize = [int(n * percent) for n in size]
# resize the image, save it as renamed file (keeping original)
im.thumbnail(newsize, Image.ANTIALIAS)
newfile = pic_dir+"/resized_"+resize.split("/")[-1]
im.save(newfile, "png")
#!/usr/bin/env python3
import os
import sys
from PIL import Image
import time
percent = float(sys.argv[1])/100
pic_dir = os.environ["HOME"]+"/Pictures"
def pics_list(dr):
return [pic_dir+"/"+f for f in os.listdir(pic_dir) if \
all([f.endswith(".png"), not f.startswith("resized")])]
def scale(f):
#open the image, look up its current size
im = Image.open(f)
size = im.size
# define the new size; current size * the percentage
newsize = [int(n * percent) for n in size]
# resize the image, save it as renamed file (keeping original)
im.thumbnail(newsize, Image.ANTIALIAS)
newfile = pic_dir+"/resized_"+f.split("/")[-1]
im.save(newfile, "png")
p_list1 = pics_list(pic_dir)
while True:
time.sleep(2)
p_list2 = pics_list(pic_dir)
for item in p_list2:
if not item in p_list1:
scale(item)
p_list1 = p_list2
#!/usr/bin/env python3
import os
import sys
from PIL import Image
import time
import subprocess
# --- change if you like the default scale percentage, as proposed by the slider:
default_percent = 80
# --- change if you like the screenshot directory
pic_dir = os.environ["HOME"]+"/Pictures"
# ---
def pics_list(dr):
return [pic_dir+"/"+f for f in os.listdir(pic_dir) if \
all([f.endswith(".png"), not f.startswith("resized")])]
def scale(f, size):
#open the image, look up its current size
im = Image.open(f)
currsize = im.size
# define the new size; current size * the percentage
newsize = [int(n * size) for n in currsize]
# resize the image, save it as renamed file (keeping original)
im.thumbnail(newsize, Image.ANTIALIAS)
newfile = pic_dir+"/resized_"+f.split("/")[-1]
im.save(newfile, "png")
p_list1 = pics_list(pic_dir)
while True:
time.sleep(2)
p_list2 = pics_list(pic_dir)
for item in p_list2:
if not item in p_list1:
try:
size = subprocess.check_output([
"zenity", "--scale",
"--value="+str(default_percent),
]).decode("utf-8")
scale(item, float(size)/100)
except subprocess.CalledProcessError:
pass
p_list1 = p_list2
1. 像往常一样截图,然后用快捷键自动缩放你最近截的截图。
放置在快捷键下,下面的脚本将:
~/Picures
添加的屏幕截图(正如您在评论中提到的那样)renamed_filename.png
,filename.png
原始文件名在哪里。如何使用
该脚本需要
python3-pil
安装库,您的系统可能并非如此:将下面的脚本复制到一个空文件中,另存为
resize_screenshot.py
通过截屏测试运行脚本,然后通过以下命令运行脚本:
其中
80
是所需的输出大小百分比。该脚本现在创建了最后一个屏幕截图的调整大小的副本。如果一切正常,请将其添加到快捷键:系统设置 > 键盘 > 快捷方式 > 自定义快捷方式。添加命令:
剧本
一个例子
您的图像示例,通过以下方式调整大小:
2.全自动选项
虽然上面的脚本在快捷键上完成了它的工作,但您可以使用后台脚本使其完全自动运行。您的脚本所做的只是检查 中的新文件
~/Picures
,并像在第一个脚本中一样执行重新缩放操作。剧本
如何使用
设置与上面的脚本完全相同(“如何使用”),但不是
[4.]
将其添加到 Startup Applications:Dash > Startup Applications > Add。添加命令:3. 带有刻度对话框的全自动选项
几乎相同的脚本,但现在带有比例对话,在您将图像保存到之后
~/Pictures
立即:此屏幕截图自动调整为 80% :)
剧本
使用
设置与上面完全相同,除了命令之外,现在没有比例百分比:
笔记
与往常一样,后台脚本实际上不使用任何资源,除非您的
~/Pictures
目录非常大:)。使用gnome-screenshot我们无法缩放输出。
要自动执行此操作,我们可以将另一个屏幕截图终端应用程序分配给快捷方式。
50% 大小的屏幕截图示例:
import
-resize
截取整个桌面的截图:
截取窗口的屏幕截图(可通过鼠标选择):
截取窗口并显示结果:
将屏幕截图加载到任何其他外部查看器(例如
eog
)scrot (manpage)输出到 Image Magic以选择屏幕区域
convert
下面的示例将显示,然后使用 scrot 的默认文件名(日期/小时/分钟/秒/大小)在我们的图片目录中保存所选区域或窗口的一半大小 (50%) 的屏幕截图: