Python合并多个图片为一张

作者 :
免费
  • 正文
  • 在做字体库时,多张图片不好统计去除背景,合并成为一张图片,在统一去除背景 这样加快了字体生产效果。

    支持3种格式,自定义图片数量,控制台有日志。

    from PIL import Image
    import os
    def merge_images(directory, output_filename_base):
        # 列出目录下的所有图片文件
        extensions = ['.jpg', '.jpeg', '.png']
        images_list = [os.path.join(directory, f) for f in os.listdir(directory) if any(f.endswith(ext) for ext in extensions)]
        print(f"Found {len(images_list)} images in {directory}")
        # 对图片列表进行排序,确保合并时的顺序是按照文件名
        images_list.sort()
        # 使用PIL库打开所有图片
        imgs = [Image.open(i) for i in images_list]
        batch_size = 10
        batches = [imgs[i:i + batch_size] for i in range(0, len(imgs), batch_size)]
        for idx, batch in enumerate(batches):
            # 获取每批合并后的图片大小
            total_width = max(img.width for img in batch)
            total_height = sum(img.height for img in batch)
            # 创建一个新图片对象用于放置当前批次的图片
            merged_img = Image.new('RGBA', (total_width, total_height))
            # 粘贴每张图片到新图片对象上
            y_offset = 0
            for img in batch:
                merged_img.paste(img, (0, y_offset))
                y_offset += img.height
            # 保存当前批次的合并后的图片
            output_filename = f"{output_filename_base}_{idx+1}.png"
            merged_img.save(output_filename)
            print(f"Saved batch {idx+1} as {output_filename}")
    if __name__ == "__main__":
        merge_images("字体库(家训)", "字体库(家训)")

    支持3种格式png jpg jpeg 合并后为.png,自定义图片数量。

    from PIL import Image
    import os
    def merge_images(directory, output_filename_base):
        # 列出目录下的所有图片文件
        extensions = ['.jpg', '.jpeg', '.png']
        images_list = [os.path.join(directory, f) for f in os.listdir(directory) if any(f.endswith(ext) for ext in extensions)]
        # 对图片列表进行排序,确保合并时的顺序是按照文件名
        images_list.sort()
        # 使用PIL库打开所有图片
        imgs = [Image.open(i) for i in images_list]
        batch_size = 10
        batches = [imgs[i:i + batch_size] for i in range(0, len(imgs), batch_size)]
        for idx, batch in enumerate(batches):
            # 获取每批合并后的图片大小
            total_width = max(img.width for img in batch)
            total_height = sum(img.height for img in batch)
            # 创建一个新图片对象用于放置当前批次的图片
            merged_img = Image.new('RGBA', (total_width, total_height))
            # 粘贴每张图片到新图片对象上
            y_offset = 0
            for img in batch:
                merged_img.paste(img, (0, y_offset))
                y_offset += img.height
            # 保存当前批次的合并后的图片
            merged_img.save(f"{output_filename_base}_{idx+1}.png")
    if __name__ == "__main__":
        merge_images("霸体字", "霸体字")

    合并多张图片为一张,所在文件夹的图片全部合并,只支持PNG图片。

    from PIL import Image
    import os
    def merge_images(directory, output_filename):
        # 列出目录下的所有.png文件
        images_list = [os.path.join(directory, f) for f in os.listdir(directory) if f.endswith('.png')]
        # 使用PIL库打开所有图片
        imgs = [Image.open(i) for i in images_list]
        # 获取合并后的图片大小
        total_width = max(img.width for img in imgs)
        total_height = sum(img.height for img in imgs)
        # 创建一个新图片对象用于放置所有图片
        merged_img = Image.new('RGBA', (total_width, total_height))
        # 粘贴每张图片到新图片对象上
        y_offset = 0
        for img in imgs:
            merged_img.paste(img, (0, y_offset))
            y_offset += img.height
        # 保存合并后的图片
        merged_img.save(output_filename)
    if __name__ == "__main__":
        merge_images("千字文7", "千字文7.png")

    Python合并多个图片为一张-完美源码

    END
    如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。 本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用! Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售! Wmphp.com(完美源码)客服QQ:136882447 Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步) 请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
    完美源码 » Python合并多个图片为一张
    3497+

    本站勉强运行

    3675+

    用户总数

    690+

    资源总数

    0+

    今日更新

    2024-4-8

    最后更新时间