使用Python调整图像大小( 三 )

命令行程序从入口点函数main运行 。参数通过传递给click.option选项:

  • pattern采用字符串形式来定位与脚本运行的目录相关的一个或多个图像 。--pattern="../catpics/*.png将向上一级查找catpics文件夹 , 并返回该文件夹中具有.png图像扩展名的所有文件 。
  • scale接受一个数字、浮点或整数 , 并将其传递给resize函数 。这个脚本很简单 , 没有数据验证 。如果你添加到代码中 , 检查比例是一个介于5和99之间的数字(合理的缩小比例参数) 。你可以通过-s "chicken nuggets"进行设置 。
  • 如果不希望在程序运行时将文本输出到标准流 , 则quiet是一个选项参数 。
从命令行运行程序:
python resize.py -s 35 -p "./*jpg"结果:
$ py resize.py -p "checkers.jpg" -s 90resized image saved to checkers_90_810x810.jpg.正在检查文件夹:
$ ls -lh checkers*-rw-r--r-- 1 nicho 197609 362K Aug 15 13:13 checkers.jpg-rw-r--r-- 1 nicho 197609 231K Aug 15 23:56 checkers_90_810x810.jpg不错!所以程序缩小了图像 , 给了它一个描述性的标签 , 我们可以看到文件大小从362KB到231KB!
为了查看程序同时处理多个文件 , 我们将再次运行它:
$ py resize.py --pattern="checkers*" --scale=20resized image saved to checkers_20_180x180.jpg.resized image saved to checkers_90_810x810_20_162x162.jpg.文件系统输出:
$ ll -h checkers*-rw-r--r-- 1 nicho 197609 362K Aug 15 13:13 checkers.jpg-rw-r--r-- 1 nicho 197609 1.8K Aug 16 00:23 checkers_20_180x180.jpg-rw-r--r-- 1 nicho 197609 231K Aug 15 23:56 checkers_90_810x810.jpg-rw-r--r-- 1 nicho 197609 1.8K Aug 16 00:23 checkers_90_810x810_20_162x162.jpg只要匹配到了模式 , 递归可以处理任意数量的图像 。
Click


推荐阅读