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