在python中使用PIL库时有关路径名的奇怪问题

时间:2018-10-22 07:44:55

标签: python python-imaging-library

此代码用于将系列图像合并为大图像。

masks=glob(temp_path+'*.jpg')
            mm=[]
            img_dim=32
            w=int(prex[5])
            h=int(prex[4])
            target = Image.new('RGB',(w*img_dim,h*img_dim))
            for i,p in enumerate(masks):
                print(i)
                mask=Image.open(p)
                mask=mask.resize((32,32))
                x=int(i%w)
                y=int(i/w)
                target.paste(mask,(x*img_dim,y*img_dim,(x+1)*img_dim,(y+1)*img_dim))
                target.save('F:/pa_slice/output/0/'+name+'_'+sub_name+'_mask.jpg')

图像名称从4M01_00_mask.jpg4M15_50_mask.jpg。奇怪的行为是,当我运行此代码时,它将在OS Error函数中抛出target.save()。 也就是说,如果我多次运行此代码,它将在不同的图像处停止。如果我很幸运,它甚至可以正常运行:)这是常见的错误:

OSError: [Errno 22] Invalid argument: 'F:/pa_slice/output/0/4M15_0_mask.jpg'

我真的不知道该如何处理:(

1 个答案:

答案 0 :(得分:0)

好吧,我将target.save()函数放在循环之外,并且可以正常工作。可能是频繁的I / O操作导致问题。