module HexaPDF:: ImageLoader
Overview¶ ↑
An *image loader* is used for loading an image and creating a suitable PDF
object. Since some image information needs to be present in the PDF
object itself (like height and width) the loader needs to parse the image to get the needed data.
Implementation of an Image Loader¶ ↑
Each image loader is a (stateless) object (normally a module) that responds to two methods:
- handles?(file_or_io)
-
Should return
true
if the given file or IO stream can be handled by the loader, i.e. if the content contains a suitable image. - load(document, file_or_io)
-
Should add a new image XObject to the document that uses the file or IO stream as source and return this newly created object. This method is only invoked if handles? has returned
true
for the samefile_or_io
object.
The image XObject may use any implemented filter. For example, an image loader for JPEG
files would typically use the DCTDecode filter instead of decoding the image itself.
See: PDF2.0 s8.9