PythonImagingLibraryからImageクラスに新しいメソッドを追加しようとしています。元のImageクラスとまったく同じように機能するDilateImageという新しいクラスが必要ですが、クラスインスタンスが実行されたときにクラスインスタンスを変更する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'