裁剪是从列表中生成的:
count = 0
for Crop in param:
count = count +1
St=chr(ord('`') + count)
print St,"=im.crop(",Crop,")"
导致:
a =im.crop( (0, 0, 640, 0) )
b =im.crop( (0, 40, 640, 40) )
c =im.crop( (0, 80, 640, 80) )
d =im.crop( (0, 120, 640, 120) )
e =im.crop( (0, 160, 640, 160) )
f =im.crop( (0, 200, 640, 200) )
g =im.crop( (0, 240, 640, 240) )
h =im.crop( (0, 280, 640, 280) )
我想使用结果实际裁剪几个部分的图像,使用枕头变量重新组装。
答案 0 :(得分:0)
您可能对eval函数-https://docs.python.org/3/library/functions.html#eval感兴趣。或者,您可以将生成的Python代码保存到文件中,然后导入/运行该文件。
但是,通常不鼓励使用这些选项中的任何一个,因为输入并不总是可信赖的。
我为您提供以下代码,该代码可以解析您的代码字符串并安全地运行它-即,它可以按您期望的方式裁剪图像,而不会让您自己运行任何可能包含的其他代码。
from PIL import Image
im = Image.new('RGB', (1000, 1000))
input = """
a =im.crop( (0, 0, 640, 0) )
b =im.crop( (0, 40, 640, 40) )
c =im.crop( (0, 80, 640, 80) )
d =im.crop( (0, 120, 640, 120) )
e =im.crop( (0, 160, 640, 160) )
f =im.crop( (0, 200, 640, 200) )
g =im.crop( (0, 240, 640, 240) )
h =im.crop( (0, 280, 640, 280) )
"""
output = {}
for line in input.strip().split("\n"):
variable, operation = line.split('=')
if operation.startswith('im.crop('):
coords = operation.split('im.crop')[1].replace('(', '').replace(')', '').split(',')
result = im.crop([int(coord) for coord in coords])
output[variable.strip()] = result
print(output)