jpegtran 整个目录

问题描述 投票:0回答:3

我想从命令行使用 jpg 图像优化整个测试文件夹。 我找到了这个,但它不起作用:

cd /home/site/html/update/test/
find . -exec jpegtran -optimize "{}" "{}.opti.jpg" "{}" \;

我想覆盖现有图像。

建议?

答案:

find /img/path -name "*.jpg" -type f -exec jpegtran -copy none -optimize -outfile {} {} \; 
command-line directory putty libjpeg jpegtran
3个回答
2
投票

答案:

find /img/path -name "*.jpg" -type f -exec jpegtran -copy none -optimize -outfile {} {} \;

0
投票

虽然这个问题很早就在这里解决了,但是谈论Python方法:

import subprocess
for image_name in arr:
    subprocess.call(["jpegtran", "-your", "-instructions"])

假设您的指令类似于:

jpegtran -optimize -progressive -scans script_new.txt -outfile progressive.jpg original.jpg

所以你的指令将是这样的:

subprocess.call(["jpegtran", "-optimize", "-progressive", "-scans", f"{scan_name}.txt", "-outfile", name_progressive, name_original])

为了方便起见,name_progressive、name_original 和 scan_name 是变量,并且使用概念 f 字符串。


0
投票

使用 GNU Parallel 更简洁、并行地完成所有任务,如下所示:

parallel jpegtran -copy none -optimize -outfile {} {} ::: *.jpg

使用

parallel --eta ...
parallel --bar ...
获取预计到达时间或进度条。

© www.soinside.com 2019 - 2024. All rights reserved.