我正在尝试从 Python Imaging Library 向 Image 类添加一个新方法。我想要一个名为 DilateImage 的新类,它与原始 Image 类完全一样,除了它还包含一个 dilate() 函数,该函数在类实例上执行时会修改它。这是我的示例代码(不起作用):
import Image
def DilateImage(Image):
def dilate(self):
imnew = self.copy()
sourcepix = imnew.load()
destpix = self.load()
for y in range(self.size[1]):
for x in range(self.size[0]):
brightest = 255
for dy in range(-1,2):
for dx in range(-1,2):
try:
brightest = min(sourcepix[x+dx,y+dy], brightest)
except IndexError:
pass
destpix[x, y] = brightest
当我尝试使用这个新的类类型来创建一个使用基类的“open”函数的实例时,它失败了:
>>> test = DilateImage.open("test.jpg")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'open'