如何使用python读取排版图片
我想用python将我大量的动漫图片进行一个统一排版操作
具体为:先读取文件夹中的图片,将他们每16张为一组进行排版
实现的效果如下
你要排版到哪里?.是一张大图片中,还是word中
你题目的解答代码如下:
#-*- coding:utf-8 -*-
import os
from PIL import Image, ImageDraw
import re
path = r"F:\My Pictures\精选图片2" #读取图片目录路径
outpath = r"F:\My Pictures\排版图片{}.png" #生成图片路径
pw,ph = 1487,2105 #分辨率是120像素/英寸时,A4纸的尺寸的图像的像素是1487×2105;
imgw,imgh = 360, 240 #排版图片中每个图片的像素尺寸;
index = 0
page = 1
newimg = Image.new(mode="RGB", size=(pw,ph), color=(255, 255, 255))
FileNames=os.listdir(path)
for fn in FileNames:
if re.search(r'\.(jpg|png)$',fn.lower()):
fullfilename=os.path.join(path,fn)
print(fn) #文件名
img = Image.open(fullfilename)
img = img.resize((imgw,imgh), Image.LANCZOS) # 得到的图像在抗锯齿和保留锐利边缘的效果较好
newimg.paste(img, (20+index%4*imgw, 300+index//4*(imgh+10)))
index += 1
if index==16:
# newimg.show()
newimg.save(outpath.format(page))
print(f"生成:"+outpath.format(page))
index = 0
page += 1
newimg = Image.new(mode="RGB", size=(pw,ph), color=(255, 255, 255))
if index>0:
newimg.save(outpath.format(page))
print(f"生成:"+outpath.format(page))
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
我这里有个例子,把1.png 到25.png 共25张宽高一致的图片拼在一起(5×5):
用到了一个库,命令行pip install pillow就安装了
from PIL import Image
def toMerge():
w = 211 # 小图片的宽
h = 202 # 小图片的高
mergePng = Image.new('RGB', (w*5, h*5)) # 设置新图片的类型和宽高
for i in range(5):
for j in range(5):
imgPath = "image/"+str(i*5+j+1)+".png"
fp = open(imgPath, 'rb')
img = Image.open(fp)
mergePng.paste(img, (j*w, i*h))
# print(imgPath, i, j)
img.close()
mergePng.save("merge.png")
mergePng.close()
就是新建一个空白图片,设好图片大小(注意这里的宽高,单位是像素不是厘米)
然后依次打开图片,读取并“粘贴”到对应的位置,最后保存新建的图片就好了
可以参考一下这个,修改一些部分就能用了