【问题标题】:How to paste one image onto every images of a specific folder in python?如何将一个图像粘贴到python中特定文件夹的每个图像上?
【发布时间】:2020-05-18 03:00:40
【问题描述】:

我有一个图像 img2,我想将其粘贴到文件夹的每个图像上,并将新图像保存在新文件夹中。下面是一张图片的代码。如何遍历特定文件夹并将新图像保存在新文件夹中?

from PIL import Image
img1 = Image.open("2.png")
img1.show()
img2 = Image.open("1.png")
img1.paste(img2,mask=img2)
img1.save('3.png', quality=95)

谢谢

【问题讨论】:

    标签: python python-imaging-library


    【解决方案1】:

    解决方法如下:

    from PIL import Image
    import glob
    
    img_to_paste = 'logo.png'
    
    img2 = Image.open(img_to_paste) #Image to paste into other images
    
    count = 1 # Labels the new generated images
    
    images = [] # List of opened images
    
    # Opens all the images except the one to be pasted
    for img in glob.glob('*.png'):
        if img != img_to_paste:
            images.append(Image.open(img))
    
    for imag in images:
        imag.paste(img2)
        imag.save(f'folder/{count}.png')
        count += 1
    

    【讨论】:

    • 我很高兴能帮上忙。
    【解决方案2】:

    让我们将您的问题分解为几个步骤:

    1. 将您的代码转换为图像文件名的函数
    2. 查找特定文件夹中所有文件的路径
    3. 在所有图像文件路径上执行您的函数

    要做到第一,请执行以下操作:

    img2 = Image.open("1.png")
    
    def function(img_path):
        img1 = Image.open(img_path).paste(img2,mask=img2)
        img1.save(img_path + 'modified')
    

    对于第二个,使用从这里修改的代码:

    import os
    print([fn for fn in os.listdir(u'.') if os.path.isfile(fn)])
    >>> ['main.py'] # list of files in same directory as python script
    

    也许还可以解析文件路径以检查它们是否是有效的文件类型或手动删除 python 脚本。

    pillow_filetypes = ['.jpg', '.jpeg', '.jpe', '.dib', '.jp2', '.bmp', '.png']
    

    如果这有帮助,请告诉我,如果您有任何问题,请询问我 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 2012-03-25
      相关资源
      最近更新 更多