当前位置:嗨网首页>书籍在线阅读

14-第2步_遍历所有文件并打开图像

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第2步:遍历所有文件并打开图像

现在,需要找到当前工作目录中的每个.png文件和.jpg文件。请注意,你不希望将徽标图像添加到徽标图像本身,所以程序应该跳过所有名为 LOGO_FILENAME 的图像文件。在程序中添加以下代码:

   #! python3
   # resizeAndAddLogo.py - Resizes all images in current working directory to fit
   # in a 300x300 square, and adds catlogo.png to the lower-right corner.
   import os
   from PIL import Image
   --snip--
   os.makedirs('withLogo',  exist_ok=True)
   # Loop over all files in the working directory.
❶ for filename in os.listdir('.'):
     ❷ if not (filename.endswith('.png') or filename.endswith('.jpg')) \ 
           or filename == LOGO_FILENAME:
         ❸  continue # skip non-image files and the logo file itself
     ❹ im = Image.open(filename) 
        width, height = im.size
   --snip--

首先, os.makedirs() 调用创建了一个文件夹 withLogo ,用于保存完成的带有徽标的图像,而不是覆盖原始图像文件。关键字参数 exist_ok=True 将防止 os.makedirs() 在withLogo已存在时抛出异常。在用 os.listdir('.') 遍历工作目录中的所有文件时❶,较长的 if 语句❷检查每个 filename 是否以.png或.jpg结束。如果不是,或者该文件是徽标图像本身,循环就跳过它,使用 continue ❸去处理下一个文件。如果 filename 确实以 '.png''.jpg' 结束(而且不是徽标文件),就将它打开为一个 Image 对象❹,并设置 widthheight