## The Python Imaging Library# $Id$## HDF5 stub adapter## Copyright (c) 2000-2003 by Fredrik Lundh## See the README file for information on usage and redistribution.#from__future__importannotationsfromtypingimportIOfrom.importImage,ImageFile_handler=None
[docs]classHDF5StubImageFile(ImageFile.StubImageFile):format="HDF5"format_description="HDF5"def_open(self)->None:offset=self.fp.tell()ifnot_accept(self.fp.read(8)):msg="Not an HDF file"raiseSyntaxError(msg)self.fp.seek(offset)# make something upself._mode="F"self._size=1,1loader=self._load()ifloader:loader.open(self)def_load(self)->ImageFile.StubHandler|None:return_handler
def_save(im:Image.Image,fp:IO[bytes],filename:str|bytes)->None:if_handlerisNoneornothasattr(_handler,"save"):msg="HDF5 save handler not installed"raiseOSError(msg)_handler.save(im,fp,filename)# --------------------------------------------------------------------# RegistryImage.register_open(HDF5StubImageFile.format,HDF5StubImageFile,_accept)Image.register_save(HDF5StubImageFile.format,_save)Image.register_extensions(HDF5StubImageFile.format,[".h5",".hdf"])