2015-12-17 34 views
1

我有以下問題: 我提取的GIF的不同幀的幾個PNG文件與:PIX [X,Y]返回整數代替(R,G,B,A)三元組

def extractFrames(inGif, outFolder): 
    frame = Image.open(inGif) 
    nframes = 0 
    while frame: 
     frame.save('%s/%s-%s.png' % (outFolder, os.path.basename(inGif), nframes) , 'PNG') 
     nframes += 1 
     try: 
      frame.seek(nframes) 
     except EOFError: 
      break; 
    return True 

按預期工作。 但是,如果我運行下面的代碼:

im = Image.open(item) #item is one of the earlier created PNGs 
pix = im.load() 
for x in range(0,im.size[0]): 
    for y in range(0,im.size[1]): 
     print pix[x,y] 

輸出會像133而不是預期的(255, 255, 255, 255)。 一旦我在Paint中打開文件並保存它們而不進行任何修改,腳本就會運行得很好,並輸出一個包含(R, G, B, A)的元組。

所以我的問題是: 爲什麼是這樣的,我怎麼修改代碼,我不必在運行代碼的第二部分之前手動打開所有圖像?

編輯:我最初嘗試了將framess提取到GIF而不是PNG中,結果相同。

回答

-1

打開時檢查像素格式。如果圖像調色板,然後添加另一位,從圖像調色板檢索顏色。

相關問題