我试图从Python Imaging Library中为Image类添加一个新方法。我想有一个名为DilateImage的新类,它的行为与原始的Image类完全一样,除了它还包含一个dilate()函数,该函数在其上执行时修改类实例。这里是我的示例代码(不工作):在Python中扩展(native)类
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'
非常感谢您的详细回复。先生。 – runeks