2013-01-25 164 views
1

我正在尝试为使用较大背景图像的游戏制作拼贴并裁剪它们,但保存前17张图像后,我开始遇到问题。第18张图像在底部变黑,其余图像全部变黑。有什么想法吗?Python Image.crop保存黑色图像

这是我的代码。 IMAGESIZE =(512,512),tilesize =(32,32)

def __init__(self, path, imagesize, tilesize): 
    self.tiles = dict() 
    self.backimage = Image.open(path) 
    self.backimage.resize(imagesize) 
    self.x = imagesize[0]/tilesize[0] 
    self.y = imagesize[1]/tilesize[1] 
    currx = 0 
    curry = 0 
    for i in range(self.x): 
     for j in range(self.y): 
      tmp = path + str(i) + "_" + str(j) + ".png" 
      self.tiles[(i, j)] = tmp 
      image = self.backimage.crop((currx, curry, currx+tilesize[0], curry+tilesize[1])) 
      image.save(tmp, "PNG") 

      curry += tilesize[1] 
     currx += tilesize[0] 
+0

我确定这个用户会发布一个图片,但是没有足够的声望。 (+1) – BlackVegetable

+0

我以为你的问题是在第16和第17张图片 –

回答

3

你不能在j循环结束复位curry。它一直在增加,直到超出界限。

+0

真棒,谢谢。 – jabelch