【发布时间】:2012-08-27 04:36:37
【问题描述】:
我正在尝试从 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
当我尝试使用这种新的类类型来创建一个使用基类的“打开”函数的实例时,它失败了:
>>> test = DilateImage.open("test.jpg")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'open'
【问题讨论】:
标签: python class python-imaging-library extend