2012-11-25 46 views
1

我正在使用並正在擴展在此處找到的熱圖模塊:http://jjguy.com/heatmap/。我的Python知識和經驗是有限的,但我很困惑,這種方法是如何工作的:GHeat中的Python Image.GetPixel

def _colorize(self, img, size, colors): 
    """ use the colorscheme selected to color the 
     image densities """ 
    w,h = img.size 
    imgnew = Image.new('RGBA', size, (255, 255, 255, 0)) 
    imgpix = img.load() 
    imgnewpix = imgnew.load() 
    for x in xrange(w): 
     for y in xrange(h): 
      pix = imgpix[x,y] 
      if isinstance(pix, (list, tuple)): 
       pix = pix[3] 
      rgba = list(colors[pix]) 
      if pix <= 254: 
       alpha = self.opacity 
       rgba.append(alpha) 
      else: 
       rgba = (255, 255, 255, 0) 

      imgnewpix[x,y] = tuple(rgba) 
    return imgnew 

更具體地說,我不明白爲什麼

pix = imgpix[x,y] 

返回一個數字,例如而不是一些有用的對象。我知道pix int被用來引用數組上的幾行,這一點我明白,但我真的不明白pix int來自哪裏?

它顯然在位置的x,y但什麼是價值...如果你明白我的意思:)

回答

0

根據圖像模式,下標操作將返回一個數字或一個元組值或3或4個數字的列表。單個數字可以是灰度值(模式'L')或調色板索引(模式'P')。當返回多個數字時,它們代表紅色,綠色,藍色和可選的Alpha(透明度)值。每個數字都是從0到255的數字,0表示黑色,255表示該顏色的全部亮度。

+0

謝謝,很好的解釋! – clangers