create static method to transform a Jpeg into an Mpo

This is dirty "downcasting". It just works in this special case.
This commit is contained in:
Adrien CLERC 2019-02-15 22:08:14 +01:00
parent 3a7e2e259a
commit ac5dd15e16

View File

@ -98,6 +98,22 @@ class MpoImageFile(JpegImagePlugin.JpegImageFile):
finally:
self.__fp = None
@staticmethod
def adopt(jpeg_instance, mpheader=None):
'''
Transform the instance of JpegImageFile into
instance of MpoImageFile.
After the call, the JpegImageFile is extended
to be an MpoImageFile.
This is essentially useful when opening a JPEG
file that reveals itself as an MPO, to avoid
double call to _open.
'''
jpeg_instance.__class__ = MpoImageFile
jpeg_instance._after_jpeg_open(mpheader)
return jpeg_instance
# ---------------------------------------------------------------------
# Registry stuff