我对PIL python的逻辑有点问题。我的目标是裁剪一个64x64大小的图像,从左上角到右下角位置。我可以做一次裁剪操作,但当我试图裁剪一个完整的图像循环,我被困在中间的循环情况。在
在第一个循环中,我可以裁剪((0,0,64,64))。但我无法计算循环部分,以获得下一个64x64s的左边和底部与皮尔。由于第一个2元组是原点位置点,下一个元组用于裁剪大小。在
在我开始学习python时,任何帮助都将非常感谢。在
import os
from PIL import Image
savedir = "E:/Cropped/OK"
filename = "E:/Cropped/dog.jpg"
img = Image.open(filename)
width, height = img.size
start_pos = start_x, start_y = (0,0)
cropped_image_size = w, h = (64, 64)
frame_num = 1
for col_i in range (width):
for row_i in range (height):
x = start_x + col_i*w
y = start_y + row_i*h
crop = img.crop((x, y, x+w*row_i, y+h*col_i))
save_to= os.path.join(savedir, "counter_{:03}.jpg")
crop.save(save_to.format(frame_num))
frame_num += 1
您可以使用
range()
函数为您执行步进操作(在本例中为64个块),这样裁剪只涉及简单的表达式:除此之外,您的代码按预期工作。在
相关问题 更多 >
编程相关推荐