文档的相关章节就是这一章,我认为它非常清楚:例如,如果您想要在新.zap格式中解码图像文件,那么您需要编写一个ZapImagePlugin.py必须执行以下操作的模块:
class ZapImageFile(ImageFile.ImageFile):带字符串的属性format和format_description一个钩子方法def _open(self)(后面会有更多);Image.register_open('zap', ZapImageFile)和Image.register_extension('ZAP', '.zap')对于该规范_open方法一章中很明确的规定-它必须从开放二进制文件的对象读取图像数据和元数据self.fp,提高SyntaxError(或其他异常)尽快如果它检测到该文件实际上并不是正确的格式,至少设置self.size和self.mode属性,为了让阅读的图像,还self.tile的列表,瓦块描述该章规定的格式发送再次(包括文件偏移,你说你也知道,和一个解码器-如果本章中记录的原始或位解码器不能满足您的需求,本章建议研究一些提供的解码器的来源,如JPEG,PNG等.
ImageFile.ImageFile我为解决这个问题所做的就是从属于嵌入格式的子项派生,而不是ImageFile.ImageFile直接派生。然后_open()我self.fp用类似文件替换嵌入图像,并调用父级的_open(). 我不能说我特别高兴这样做,但它似乎奏效了。
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |