MediaWiki  master
DjVuHandler Class Reference

Handler for DjVu images. More...

Inheritance diagram for DjVuHandler:
Collaboration diagram for DjVuHandler:

Public Member Functions

 doTransform ( $image, $dstPath, $dstUrl, $params, $flags=0)
 
 getImageSize ( $image, $path)
 Get an image size array like that returned by getimagesize(), or false if it can't be determined.This function is used for determining the width, height and bitdepth directly from an image. The results are stored in the database in the img_width, img_height, img_bits fields.
Note
If this is a multipage file, return the width and height of the first page.
Parameters
File | FSFile$imageThe image object, or false if there isn't one. Warning, FSFile::getPropsFromPath might pass an FSFile instead of File (!)
string$pathThe filename
Returns
array|false Follow the format of PHP getimagesize() internal function. See https://www.php.net/getimagesize. MediaWiki will only ever use the first two array keys (the width and height), and the 'bits' associative key. All other array keys are ignored. Returning a 'bits' key is optional as not all formats have a notion of "bitdepth". Returns false on failure.
Stable to override Stable to override More...
 
 getMetadata ( $image, $path)
 Get handler-specific metadata which will be saved in the img_metadata field. More...
 
 getMetadataType ( $image)
 Get a string describing the type of metadata, for display purposes. More...
 
 getMetaTree ( $image, $gettext=false)
 Cache a document tree for the DjVu XML metadata. More...
 
 getPageDimensions (File $image, $page)
 Get an associative array of page dimensions Currently "width" and "height" are understood, but this might be expanded in the future. More...
 
 getPageText (File $image, $page)
 
 getParamMap ()
 
 getThumbType ( $ext, $mime, $params=null)
 Get the thumbnail extension and MIME type for a given source MIME type. More...
 
 isEnabled ()
 
 isExpensiveToThumbnail ( $file)
 True if creating thumbnails from the file is large or otherwise resource-intensive. More...
 
 isMetadataValid ( $image, $metadata)
 Check if the metadata string is valid for this handler. More...
 
 isMultiPage ( $file)
 
 makeParamString ( $params)
 
 mustRender ( $file)
 
 pageCount (File $image)
 Page count for a multi-page document, false if unsupported or unknown. More...
 
 parseParamString ( $str)
 
 validateParam ( $name, $value)
 
- Public Member Functions inherited from ImageHandler
 canRender ( $file)
 True if the handled types can be transformed.Stable to override
Parameters
File$file
Returns
bool
Stable to override More...
 
 getDimensionsString ( $file)
 Shown in file history box on image description page.Stable to override
Parameters
File$file
Returns
string Dimensions
Stable to override More...
 
 getImageArea ( $image)
 Function that returns the number of pixels to be thumbnailed. More...
 
 getLongDesc ( $file)
 Long description.Shown under image on image description page surounded by ().Stable to override
Parameters
File$file
Returns
string
Stable to override More...
 
 getScriptedTransform ( $image, $script, $params)
 Get a MediaTransformOutput object representing an alternate of the transformed output which will call an intermediary thumbnail assist script.Used when the repository has a thumbnailScriptUrl option configured.Return false to fall back to the regular getTransform().Stable to override
Parameters
File$image
string$script
array$params
Returns
bool|ThumbnailImage
Stable to override More...
 
 getShortDesc ( $file)
 Short description.Shown on Special:Search results.Stable to override
Parameters
File$file
Returns
string
Stable to override More...
 
 normaliseParams ( $image, &$params)
 Changes the parameter array as necessary, ready for transformation.Should be idempotent. Returns false if the parameters are unacceptable and the transform should fail

Parameters
File$image
array&$params
Stable to override More...
 
 sanitizeParamsForBucketing ( $params)
 Returns a normalised params array for which parameters have been cleaned up for bucketing purposes Stable to override.
Parameters
array$params
Returns
array
Stable to override More...
 
- Public Member Functions inherited from MediaHandler
 canAnimateThumbnail ( $file)
 If the material is animated, we can animate the thumbnail. More...
 
 canRotate ()
 True if the handler can rotate the media. More...
 
 convertMetadataVersion ( $metadata, $version=1)
 Convert metadata version. More...
 
 filterThumbnailPurgeList (&$files, $options)
 Remove files from the purge list. More...
 
 formatMetadata ( $image, $context=false)
 Get an array structure that looks like this: More...
 
 getAvailableLanguages (File $file)
 Get list of languages file can be viewed in. More...
 
 getCommonMetaArray (File $file)
 Get an array of standard (FormatMetadata type) metadata values. More...
 
 getContentHeaders ( $metadata)
 Get useful response headers for GET/HEAD requests for a file with the given metadata Stable to override. More...
 
 getDefaultRenderLanguage (File $file)
 On file types that support renderings in multiple languages, which language is used by default if unspecified. More...
 
 getEntireText (File $file)
 Get the text of the entire document. More...
 
 getLength ( $file)
 If its an audio file, return the length of the file. More...
 
 getMatchedLanguage ( $userPreferredLanguage, array $availableLanguages)
 When overridden in a descendant class, returns a language code most suiting. More...
 
 getRotation ( $file)
 On supporting image formats, try to read out the low-level orientation of the file and return the angle that the file needs to be rotated to be viewed. More...
 
 getTransform ( $image, $dstPath, $dstUrl, $params)
 Get a MediaTransformOutput object representing the transformed output. More...
 
 getWarningConfig ( $file)
 Gets configuration for the file warning message. More...
 
 isAnimatedImage ( $file)
 The material is an image, and is animated. More...
 
 isVectorized ( $file)
 The material is vectorized and thus scaling is lossless. More...
 
 parserTransformHook ( $parser, $file)
 Modify the parser object post-transform. More...
 
 removeBadFile ( $dstPath, $retval=0)
 Check for zero-sized thumbnails. More...
 
 supportsBucketing ()
 Returns whether or not this handler supports the chained generation of thumbnails according to buckets Stable to override. More...
 
 verifyUpload ( $fileName)
 File validation hook called on upload. More...
 

Protected Member Functions

 extractTreesFromMetadata ( $metadata)
 Extracts metadata and text trees from metadata XML in string form. More...
 
 getDimensionInfo (File $file)
 
 getDimensionInfoFromMetaTree ( $metatree)
 Given an XML metadata tree, returns dimension information about the document. More...
 
 getScriptParams ( $params)
 
- Protected Member Functions inherited from MediaHandler
 formatMetadataHelper ( $metadataArray, $context=false)
 sorts the visible/invisible field. More...
 
 logErrorForExternalProcess ( $retval, $err, $cmd)
 Log an error that occurred in an external process. More...
 
 visibleMetadataFields ()
 Get a list of metadata items which should be displayed when the metadata table is collapsed. More...
 

Private Member Functions

 getDjVuImage ( $image, $path)
 Cache an instance of DjVuImage in an Image object, return that instance. More...
 
 getUnserializedMetadata (File $file)
 Get metadata, unserializing it if necessary. More...
 

Private Attributes

const EXPENSIVE_SIZE_LIMIT = 10485760
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaHandler
static fitBoxWidth ( $boxWidth, $boxHeight, $maxHeight)
 Calculate the largest thumbnail width for a given original file size such that the thumbnail's height is at most $maxHeight. More...
 
static getGeneralLongDesc ( $file)
 Used instead of getLongDesc if there is no handler registered for file. More...
 
static getGeneralShortDesc ( $file)
 Used instead of getShortDesc if there is no handler registered for file. More...
 
static getHandler ( $type)
 Get a MediaHandler for a given MIME type from the instance cache. More...
 
static getMetadataVersion ()
 Get metadata version. More...
 
static getPageRangesByDimensions ( $pagesByDimensions)
 Converts a dimensions array about a potentially multipage document from an exhaustive list of ordered page numbers to a list of page ranges. More...
 
- Public Attributes inherited from MediaHandler
const METADATA_BAD = false
 
const METADATA_COMPATIBLE = 2
 
const METADATA_GOOD = true
 
const TRANSFORM_LATER = 1
 
- Static Protected Member Functions inherited from MediaHandler
static addMeta (&$array, $visibility, $type, $id, $value, $param=false)
 This is used to generate an array element for each metadata value That array is then used to generate the table of metadata values on the image page. More...
 

Detailed Description

Handler for DjVu images.

Definition at line 31 of file DjVuHandler.php.

Member Function Documentation

◆ doTransform()

DjVuHandler::doTransform (   $image,
  $dstPath,
  $dstUrl,
  $params,
  $flags = 0 
)
Parameters
File$image
string$dstPath
string$dstUrl
array$params
int$flags
Returns
MediaTransformError|ThumbnailImage|TransformParameterError

Reimplemented from MediaHandler.

Definition at line 150 of file DjVuHandler.php.

References $wgDjvuPostProcessor, $wgDjvuRenderer, PoolCounterWork\execute(), MediaHandler\logErrorForExternalProcess(), ImageHandler\normaliseParams(), MediaHandler\removeBadFile(), wfDebug(), wfDebugLog(), wfHostname(), wfMessage(), wfMkdirParents(), and wfShellExec().

◆ extractTreesFromMetadata()

DjVuHandler::extractTreesFromMetadata (   $metadata)
protected

Extracts metadata and text trees from metadata XML in string form.

Parameters
string$metadataXML metadata as a string
Returns
array

Definition at line 327 of file DjVuHandler.php.

References wfDebug().

Referenced by getMetaTree().

◆ getDimensionInfo()

DjVuHandler::getDimensionInfo ( File  $file)
protected

Definition at line 408 of file DjVuHandler.php.

References $cache, $file, getDimensionInfoFromMetaTree(), and getMetaTree().

Referenced by getPageDimensions(), and pageCount().

◆ getDimensionInfoFromMetaTree()

DjVuHandler::getDimensionInfoFromMetaTree (   $metatree)
protected

Given an XML metadata tree, returns dimension information about the document.

Parameters
bool | SimpleXMLElement$metatreeThe file's XML metadata tree
Returns
bool|array

Definition at line 426 of file DjVuHandler.php.

Referenced by getDimensionInfo().

◆ getDjVuImage()

DjVuHandler::getDjVuImage (   $image,
  $path 
)
private

Cache an instance of DjVuImage in an Image object, return that instance.

Parameters
File | FSFile$image
string$path
Returns
DjVuImage PhanUndeclaredProperty Custom property

Definition at line 245 of file DjVuHandler.php.

References $path.

Referenced by getImageSize(), and getMetadata().

◆ getImageSize()

DjVuHandler::getImageSize (   $image,
  $path 
)

Get an image size array like that returned by getimagesize(), or false if it can't be determined.This function is used for determining the width, height and bitdepth directly from an image. The results are stored in the database in the img_width, img_height, img_bits fields.

Note
If this is a multipage file, return the width and height of the first page.
Parameters
File | FSFile$imageThe image object, or false if there isn't one. Warning, FSFile::getPropsFromPath might pass an FSFile instead of File (!)
string$pathThe filename
Returns
array|false Follow the format of PHP getimagesize() internal function. See https://www.php.net/getimagesize. MediaWiki will only ever use the first two array keys (the width and height), and the 'bits' associative key. All other array keys are ignored. Returning a 'bits' key is optional as not all formats have a notion of "bitdepth". Returns false on failure.
Stable to override Stable to override

Reimplemented from ImageHandler.

Definition at line 356 of file DjVuHandler.php.

References $path, and getDjVuImage().

◆ getMetadata()

DjVuHandler::getMetadata (   $image,
  $path 
)

Get handler-specific metadata which will be saved in the img_metadata field.

Stable to override

Parameters
File | FSFile$imageThe image object, or false if there isn't one. Warning, FSFile::getPropsFromPath might pass an FSFile instead of File (!)
string$pathThe filename
Returns
string A string of metadata in php serialized form (Run through serialize())

Reimplemented from MediaHandler.

Definition at line 371 of file DjVuHandler.php.

References $path, getDjVuImage(), serialize(), and wfDebug().

◆ getMetadataType()

DjVuHandler::getMetadataType (   $image)

Get a string describing the type of metadata, for display purposes.

Stable to override

Note
This method is currently unused.
Parameters
File$image
Returns
string

Reimplemented from MediaHandler.

Definition at line 383 of file DjVuHandler.php.

◆ getMetaTree()

DjVuHandler::getMetaTree (   $image,
  $gettext = false 
)

Cache a document tree for the DjVu XML metadata.

Parameters
File$image
bool$gettextDOCUMENT (Default: false)
Returns
bool|SimpleXMLElement PhanUndeclaredProperty Custom property

Definition at line 296 of file DjVuHandler.php.

References extractTreesFromMetadata(), getUnserializedMetadata(), isMetadataValid(), and wfDebug().

Referenced by getDimensionInfo(), and getPageText().

◆ getPageDimensions()

DjVuHandler::getPageDimensions ( File  $image,
  $page 
)

Get an associative array of page dimensions Currently "width" and "height" are understood, but this might be expanded in the future.

Returns false if unknown.

It is expected that handlers for paged media (e.g. DjVuHandler) will override this method so that it gives the correct results for each specific page of the file, using the $page argument.

Note
For non-paged media, use getImageSize.

Stable to override

Parameters
File$image
int$pageWhat page to get dimensions of
Returns
array|bool

Reimplemented from MediaHandler.

Definition at line 397 of file DjVuHandler.php.

References getDimensionInfo().

◆ getPageText()

DjVuHandler::getPageText ( File  $image,
  $page 
)
Parameters
File$image
int$pagePage number to get information for
Returns
bool|string Page text or false when no text found.

Reimplemented from MediaHandler.

Definition at line 453 of file DjVuHandler.php.

References getMetaTree().

◆ getParamMap()

DjVuHandler::getParamMap ( )
Returns
array

Reimplemented from ImageHandler.

Definition at line 76 of file DjVuHandler.php.

◆ getScriptParams()

DjVuHandler::getScriptParams (   $params)
protected
Parameters
array$params
Returns
array

Reimplemented from ImageHandler.

Definition at line 135 of file DjVuHandler.php.

◆ getThumbType()

DjVuHandler::getThumbType (   $ext,
  $mime,
  $params = null 
)

Get the thumbnail extension and MIME type for a given source MIME type.

Stable to override

Parameters
string$extExtension of original file
string$mimeMIME type of original file
array | null$paramsHandler specific rendering parameters
Returns
array Thumbnail extension and MIME type

Reimplemented from MediaHandler.

Definition at line 360 of file DjVuHandler.php.

References $mime, $wgDjvuOutputExtension, and MediaWiki\MediaWikiServices\getInstance().

◆ getUnserializedMetadata()

DjVuHandler::getUnserializedMetadata ( File  $file)
private

Get metadata, unserializing it if necessary.

Parameters
File$fileThe DjVu file in question
Returns
string XML metadata as a string.
Exceptions
MWException

Definition at line 264 of file DjVuHandler.php.

References $file, and unserialize().

Referenced by getMetaTree().

◆ isEnabled()

DjVuHandler::isEnabled ( )
Returns
bool

Reimplemented from MediaHandler.

Definition at line 37 of file DjVuHandler.php.

References $wgDjvuDump, $wgDjvuRenderer, $wgDjvuToXML, and wfDebug().

◆ isExpensiveToThumbnail()

DjVuHandler::isExpensiveToThumbnail (   $file)

True if creating thumbnails from the file is large or otherwise resource-intensive.

Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 61 of file DjVuHandler.php.

References $file.

◆ isMetadataValid()

DjVuHandler::isMetadataValid (   $image,
  $metadata 
)

Check if the metadata string is valid for this handler.

If it returns MediaHandler::METADATA_BAD (or false), Image will reload the metadata from the file and update the database. MediaHandler::METADATA_GOOD for if the metadata is a-ok, MediaHandler::METADATA_COMPATIBLE if metadata is old but backwards compatible (which may or may not trigger a metadata reload).

Note
Returning self::METADATA_BAD will trigger a metadata reload from file on page view. Always returning this from a broken file, or suddenly triggering as bad metadata for a large number of files can cause performance problems.

Stable to override

Parameters
File$image
string$metadataThe metadata in serialized form
Returns
bool|int

Reimplemented from MediaHandler.

Definition at line 387 of file DjVuHandler.php.

References serialize().

Referenced by getMetaTree().

◆ isMultiPage()

DjVuHandler::isMultiPage (   $file)
Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 69 of file DjVuHandler.php.

◆ makeParamString()

DjVuHandler::makeParamString (   $params)
Parameters
array$params
Returns
bool|string

Reimplemented from ImageHandler.

Definition at line 109 of file DjVuHandler.php.

◆ mustRender()

DjVuHandler::mustRender (   $file)
Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 52 of file DjVuHandler.php.

◆ pageCount()

DjVuHandler::pageCount ( File  $file)

Page count for a multi-page document, false if unsupported or unknown.

Stable to override

Parameters
File$file
Returns
int|false

Reimplemented from MediaHandler.

Definition at line 391 of file DjVuHandler.php.

References getDimensionInfo().

◆ parseParamString()

DjVuHandler::parseParamString (   $str)
Parameters
string$str
Returns
array|bool

Reimplemented from ImageHandler.

Definition at line 122 of file DjVuHandler.php.

◆ validateParam()

DjVuHandler::validateParam (   $name,
  $value 
)
Parameters
string$name
mixed$value
Returns
bool

Reimplemented from ImageHandler.

Definition at line 88 of file DjVuHandler.php.

Member Data Documentation

◆ EXPENSIVE_SIZE_LIMIT

const DjVuHandler::EXPENSIVE_SIZE_LIMIT = 10485760
private

Definition at line 32 of file DjVuHandler.php.


The documentation for this class was generated from the following file: