یک افزونه از دو فایل منبع و توصیف کننده .ini تشکیل شده است. فرض کنید ما می خواهیم افزونه ای برای نمایش با استفاده از matplotlib ارائه دهیم. با افزونه mpl این کار را انجام می دهیم:
نام فایل های .py و .ini باید مطابقت داشته باشد. در داخل فایل .ini، متا داده های افزونه ارائه می شود:
[mpl] <-- name of the plugin, may be anythingdescription = Matplotlib image I/O pluginprovides = imshow <-- a comma-separated list, one or more of imshow, imsave, imread, _app_show
خط "provides" تمام توابع ارائه شده توسط افزونه را لیست می کند. از آنجا که افزونه ما imshow را ارائه می دهد، باید آن را در mpl.py تعریف کنیم:
# This is mpl.pyimport matplotlib.pyplot as pltdefimshow(img): plt.imshow(img)
توجه داشته باشید که به طور پیش فرض، imshow مسدود نیست، بنابراین یک تابع ویژه _app_show باید برای مسدود کردن GUI ارائه شود. ما می توانیم افزونه خود را تغییر دهیم تا به شرح زیر ارائه شود:
[mpl]provides = imshow, _app_show
# This is mpl.pyimport matplotlib.pyplot as pltdefimshow(img): plt.imshow(img)def_app_show(): plt.show()
هرگونه افزونه در فهرست _plugins پس از وارد شدن به طور خودکار توسط skimage.io بررسی می شود. می توانید تمام افزونه های سیستم خود را لیست کنید:
>>>import skimage.io as io>>> io.find_available_plugins(){'gtk': ['imshow'],'matplotlib': ['imshow','imread','imread_collection'],'pil': ['imread','imsave','imread_collection'],'qt': ['imshow','imsave','imread','imread_collection'],'test': ['imsave','imshow','imread','imread_collection'],}