12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #
- # The Python Imaging Library
- # $Id$
- #
- # FITS stub adapter
- #
- # Copyright (c) 1998-2003 by Fredrik Lundh
- #
- # See the README file for information on usage and redistribution.
- #
-
- from . import FitsImagePlugin, Image, ImageFile
- from ._deprecate import deprecate
-
- _handler = None
-
-
- def register_handler(handler):
- """
- Install application-specific FITS image handler.
-
- :param handler: Handler object.
- """
- global _handler
- _handler = handler
-
- deprecate(
- "FitsStubImagePlugin",
- 10,
- action="FITS images can now be read without "
- "a handler through FitsImagePlugin instead",
- )
-
- # Override FitsImagePlugin with this handler
- # for backwards compatibility
- try:
- Image.ID.remove(FITSStubImageFile.format)
- except ValueError:
- pass
-
- Image.register_open(
- FITSStubImageFile.format, FITSStubImageFile, FitsImagePlugin._accept
- )
-
-
- class FITSStubImageFile(ImageFile.StubImageFile):
- format = FitsImagePlugin.FitsImageFile.format
- format_description = FitsImagePlugin.FitsImageFile.format_description
-
- def _open(self):
- offset = self.fp.tell()
-
- im = FitsImagePlugin.FitsImageFile(self.fp)
- self._size = im.size
- self.mode = im.mode
- self.tile = []
-
- self.fp.seek(offset)
-
- loader = self._load()
- if loader:
- loader.open(self)
-
- def _load(self):
- return _handler
-
-
- def _save(im, fp, filename):
- msg = "FITS save handler not installed"
- raise OSError(msg)
-
-
- # --------------------------------------------------------------------
- # Registry
-
- Image.register_save(FITSStubImageFile.format, _save)
|