galgame、二次元游戏提取出来的cg有些是720p的不知道什么原因作者使用的是1080p导致提取出来的图片都在左上角,png图右下全是空白的,该方法利用Python 图像处理 PIL来裁剪图片成720p
import os
from PIL import Image
address = 'F:\xxx\素材' #提取出来CG所存放的文件夹
for filepath,dirnames,filenames in os.walk(address):
for filename in filenames:
img = Image.open(os.path.join(filepath, filename))
cropped = img.crop((0, 0, 1280, 720))
address_save = filepath + '/cropped/' +filename
if not os.path.isdir(filepath + '/cropped'):
os.makedirs(filepath + '/cropped')
cropped.save(address_save)
img.close()
else:
cropped.save(address_save)
img.close()
address = 'F:\xxx\素材' #提取出来CG所存放的文件夹
for filepath,dirnames,filenames in os.walk(address):
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
filepath 表示当前正在访问的文件夹路径
dirnames 表示该文件夹下的子目录名list
filenames 表示该文件夹下的文件list
for filename in filenames:
img = Image.open(os.path.join(filepath, filename))
cropped = img.crop((0, 0, 1280, 720))
address_save = filepath + '/cropped/' +filename
for filename in filenames:
filenames 序列,用for循环遍历序列
os.path.join 用于拼接文件路径
Image.open 打开图片
img.crop(x0, y0, x1, y1) x代表横坐标,y代表纵坐标。左上角坐标是(0,0)右下角坐标(1280,720)
address_save = filepath + '/cropped/' +filename 裁剪后文件保存地址
if not os.path.isdir(filepath + '/cropped'):
os.makedirs(filepath + '/cropped')
cropped.save(address_save)
img.close()
else:
cropped.save(address_save)
img.close()
上面的代码用来判断保存路径是否存在的,不存在则创建,存在则保存
cropped.save(address_save) 保存图片