MediaWiki  1.23.15
SvgHandler Class Reference

Handler for SVG images. More...

Inheritance diagram for SvgHandler:
Collaboration diagram for SvgHandler:

Public Member Functions

 canAnimateThumb ( $file)
 We do not support making animated svg thumbnails. More...
 
 doTransform ( $image, $dstPath, $dstUrl, $params, $flags=0)
 
 formatMetadata ( $file)
 
 getAvailableLanguages (File $file)
 Which languages (systemLanguage attribute) is supported. More...
 
 getCommonMetaArray (File $file)
 Get an array of standard (FormatMetadata type) metadata values. More...
 
 getDefaultRenderLanguage (File $file)
 What language to render file in if none selected. More...
 
 getImageSize ( $file, $path, $metadata=false)
 
 getLongDesc ( $file)
 Subtitle for the image. More...
 
 getMetadata ( $file, $filename)
 
 getMetadataType ( $image)
 Get a string describing the type of metadata, for display purposes. More...
 
 getParamMap ()
 Get an associative array mapping magic word IDs to parameter names. More...
 
 getScriptParams ( $params)
 
 getThumbType ( $ext, $mime, $params=null)
 Get the thumbnail extension and MIME type for a given source MIME type. More...
 
 isAnimatedImage ( $file)
 
 isEnabled ()
 False if the handler is disabled for all files. More...
 
 isMetadataValid ( $image, $metadata)
 Check if the metadata string is valid for this handler. More...
 
 isVectorized ( $file)
 The material is vectorized and thus scaling is lossless. More...
 
 makeParamString ( $params)
 
 mustRender ( $file)
 True if handled types cannot be displayed directly in a browser but can be rendered. More...
 
 normaliseParams ( $image, &$params)
 
 parseParamString ( $str)
 Parse a param string made with makeParamString back into an array. More...
 
 rasterize ( $srcPath, $dstPath, $width, $height, $lang=false)
 Transform an SVG file to PNG This function can be called outside of thumbnail contexts. More...
 
 unpackMetadata ( $metadata)
 
 validateParam ( $name, $value)
 
- Public Member Functions inherited from ImageHandler
 canRender ( $file)
 
 getDimensionsString ( $file)
 
 getImageArea ( $image)
 Function that returns the number of pixels to be thumbnailed. More...
 
 getImageSize ( $image, $path)
 Get an image size array like that returned by getimagesize(), or false if it can't be determined. More...
 
 getScriptedTransform ( $image, $script, $params)
 
 getShortDesc ( $file)
 
 validateThumbParams (&$width, &$height, $srcWidth, $srcHeight, $mimeType)
 Validate thumbnail parameters and fill in the correct height. More...
 
- Public Member Functions inherited from MediaHandler
 canAnimateThumbnail ( $file)
 If the material is animated, we can animate the thumbnail. More...
 
 convertMetadataVersion ( $metadata, $version=1)
 Convert metadata version. More...
 
 filterThumbnailPurgeList (&$files, $options)
 Remove files from the purge list. More...
 
 formatMetadataHelper ( $metadataArray)
 sorts the visible/invisible field. 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...
 
 getPageDimensions ( $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 ( $image, $page)
 Generic getter for text layer. 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...
 
 getStreamHeaders ( $metadata)
 Get useful response headers for GET/HEAD requests for a file with the given metadata. More...
 
 getTransform ( $image, $dstPath, $dstUrl, $params)
 Get a MediaTransformOutput object representing the transformed output. More...
 
 isMultiPage ( $file)
 True if the type has multi-page capabilities. More...
 
 pageCount ( $file)
 Page count for a multi-page document, false if unsupported or unknown. More...
 
 parserTransformHook ( $parser, $file)
 Modify the parser object post-transform. More...
 
 removeBadFile ( $dstPath, $retval=0)
 Check for zero-sized thumbnails. More...
 
 verifyUpload ( $fileName)
 File validation hook called on upload. More...
 

Static Public Member Functions

static rasterizeImagickExt ( $srcPath, $dstPath, $width, $height)
 
- Static Public Member Functions inherited from MediaHandler
static canRotate ()
 
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 getShortDesc if there is no handler registered for file. More...
 
static getGeneralShortDesc ( $file)
 Long description. More...
 
static getHandler ( $type)
 Get a MediaHandler for a given MIME type from the instance cache. More...
 
static getMetadataVersion ()
 Get metadata version. More...
 

Public Attributes

const SVG_METADATA_VERSION = 2
 
- Public Attributes inherited from MediaHandler
const MAX_ERR_LOG_SIZE = 65535
 Max length of error logged by logErrorForExternalProcess() More...
 
const METADATA_BAD = false
 
const METADATA_COMPATIBLE = 2
 
const METADATA_GOOD = true
 
const TRANSFORM_LATER = 1
 

Protected Member Functions

 visibleMetadataFields ()
 Get a list of metadata items which should be displayed when the metadata table is collapsed. More...
 
- Protected Member Functions inherited from MediaHandler
 logErrorForExternalProcess ( $retval, $err, $cmd)
 Log an error that occurred in an external process. More...
 

Static Private Attributes

static $metaConversion
 

Additional Inherited Members

- 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...
 
- Static Protected Attributes inherited from MediaHandler
static $handlers = array()
 

Detailed Description

Handler for SVG images.

Definition at line 29 of file SVG.php.

Member Function Documentation

◆ canAnimateThumb()

SvgHandler::canAnimateThumb (   $file)

We do not support making animated svg thumbnails.

Definition at line 119 of file SVG.php.

◆ doTransform()

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

Reimplemented from MediaHandler.

Reimplemented in MockSvgHandler.

Definition at line 161 of file SVG.php.

References $flags, $params, getDefaultRenderLanguage(), normaliseParams(), rasterize(), text, unpackMetadata(), wfMessage(), and wfMkdirParents().

◆ formatMetadata()

SvgHandler::formatMetadata (   $file)
Parameters
File$file
Returns
array|bool

Reimplemented from MediaHandler.

Definition at line 381 of file SVG.php.

References $file, $name, $value, MediaHandler\addMeta(), array(), as, unpackMetadata(), and visibleMetadataFields().

◆ getAvailableLanguages()

SvgHandler::getAvailableLanguages ( File  $file)

Which languages (systemLanguage attribute) is supported.

Note
This list is not guaranteed to be exhaustive. To avoid OOM errors, we only look at first bit of a file. Thus all languages on this list are present in the file, but its possible for the file to have a language not on this list.
Parameters
File$file
Returns
Array of language codes, or empty if no language switching supported.

Reimplemented from MediaHandler.

Definition at line 91 of file SVG.php.

References $file, array(), as, and unpackMetadata().

◆ getCommonMetaArray()

SvgHandler::getCommonMetaArray ( File  $file)

Get an array of standard (FormatMetadata type) metadata values.

The returned data is largely the same as that from getMetadata(), but formatted in a standard, stable, handler-independent way. The idea being that some values like ImageDescription or Artist are universal and should be retrievable in a handler generic way.

The specific properties are the type of properties that can be handled by the FormatMetadata class. These values are exposed to the user via the filemetadata parser function.

Details of the response format of this function can be found at https://www.mediawiki.org/wiki/Manual:File_metadata_handling tl/dr: the response is an associative array of properties keyed by name, but the value can be complex. You probably want to call one of the FormatMetadata::flatten* functions on the property values before using them, or call FormatMetadata::getFormattedData() on the full response array, which transforms all values into prettified, human-readable text.

Subclasses overriding this function must return a value which is a valid API response fragment (all associative array keys are valid XML tagnames).

Note, if the file simply has no metadata, but the handler supports this interface, it should return an empty array, not false.

Parameters
File$file
Returns
array|bool False if interface not supported
Since
1.23

Reimplemented from MediaHandler.

Definition at line 493 of file SVG.php.

References $file, $name, $value, array(), as, and unpackMetadata().

◆ getDefaultRenderLanguage()

SvgHandler::getDefaultRenderLanguage ( File  $file)

What language to render file in if none selected.

Returns
String language code.

Reimplemented from MediaHandler.

Definition at line 112 of file SVG.php.

Referenced by doTransform().

◆ getImageSize()

SvgHandler::getImageSize (   $file,
  $path,
  $metadata = false 
)
Parameters
File$file
string$pathUnused
bool | array$metadata
Returns
array

Definition at line 274 of file SVG.php.

References $file, and array().

◆ getLongDesc()

SvgHandler::getLongDesc (   $file)

Subtitle for the image.

Different from the base class so it can be denoted that SVG's have a "nominal" resolution, and not a fixed one, as well as so animation can be denoted.

Parameters
File$file
Returns
string

Reimplemented from ImageHandler.

Definition at line 301 of file SVG.php.

References $file, $size, $wgLang, global, isAnimatedImage(), unpackMetadata(), and wfMessage().

◆ getMetadata()

SvgHandler::getMetadata (   $file,
  $filename 
)
Parameters
File$file
string$filename
Returns
string Serialised metadata

Reimplemented from MediaHandler.

Definition at line 327 of file SVG.php.

References $e, array(), SVGMetadataExtractor\getMetadata(), and wfDebug().

◆ getMetadataType()

SvgHandler::getMetadataType (   $image)

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

Parameters
File$image
Returns
string

Reimplemented from MediaHandler.

Definition at line 354 of file SVG.php.

◆ getParamMap()

SvgHandler::getParamMap ( )

Get an associative array mapping magic word IDs to parameter names.

Will be used by the parser to identify parameters.

Reimplemented from ImageHandler.

Definition at line 476 of file SVG.php.

References array().

◆ getScriptParams()

SvgHandler::getScriptParams (   $params)
Parameters
array$params
Returns
array

Reimplemented from ImageHandler.

Definition at line 484 of file SVG.php.

References $params, and array().

◆ getThumbType()

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

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

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

Reimplemented from MediaHandler.

Definition at line 288 of file SVG.php.

References array().

◆ isAnimatedImage()

SvgHandler::isAnimatedImage (   $file)
Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 66 of file SVG.php.

References $file, and unpackMetadata().

Referenced by getLongDesc().

◆ isEnabled()

SvgHandler::isEnabled ( )

False if the handler is disabled for all files.

Returns
bool

Reimplemented from MediaHandler.

Definition at line 43 of file SVG.php.

References global, and wfDebug().

◆ isMetadataValid()

SvgHandler::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, MediaHanlder::METADATA_COMPATIBLE if metadata is old but backwards compatible (which may or may not trigger a metadata reload).

Parameters
File$image
array$metadata
Returns
bool

Reimplemented from MediaHandler.

Definition at line 358 of file SVG.php.

References MediaHandler\METADATA_BAD, MediaHandler\METADATA_COMPATIBLE, MediaHandler\METADATA_GOOD, and unpackMetadata().

◆ isVectorized()

SvgHandler::isVectorized (   $file)

The material is vectorized and thus scaling is lossless.

Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 58 of file SVG.php.

◆ makeParamString()

SvgHandler::makeParamString (   $params)
Parameters
array$paramsname=>value pairs of parameters
Returns
string Filename to use

Reimplemented from ImageHandler.

Definition at line 452 of file SVG.php.

References $params.

◆ mustRender()

SvgHandler::mustRender (   $file)

True if handled types cannot be displayed directly in a browser but can be rendered.

Parameters
File$file
Returns
bool

Reimplemented from MediaHandler.

Definition at line 54 of file SVG.php.

◆ normaliseParams()

SvgHandler::normaliseParams (   $image,
$params 
)
Parameters
File$image
array$params
Returns
bool

Reimplemented from ImageHandler.

Definition at line 128 of file SVG.php.

References $params, global, and File\scaleHeight().

Referenced by doTransform().

◆ parseParamString()

SvgHandler::parseParamString (   $str)

Parse a param string made with makeParamString back into an array.

Parameters
string$strThe parameter string without file name (e.g. 122px)
Returns
array|bool Array of parameters or false on failure.

Reimplemented from ImageHandler.

Definition at line 465 of file SVG.php.

References array().

◆ rasterize()

SvgHandler::rasterize (   $srcPath,
  $dstPath,
  $width,
  $height,
  $lang = false 
)

Transform an SVG file to PNG This function can be called outside of thumbnail contexts.

Parameters
string$srcPath
string$dstPath
string$width
string$height
bool | string$langLanguage code of the language to render the SVG in
Exceptions
MWException
Returns
bool|MediaTransformError

Definition at line 207 of file SVG.php.

References $args, $retval, array(), global, MediaHandler\logErrorForExternalProcess(), MediaHandler\removeBadFile(), wfDebug(), wfEscapeShellArg(), wfProfileIn(), wfProfileOut(), and wfShellExecWithStderr().

Referenced by doTransform().

◆ rasterizeImagickExt()

static SvgHandler::rasterizeImagickExt (   $srcPath,
  $dstPath,
  $width,
  $height 
)
static

Definition at line 254 of file SVG.php.

◆ unpackMetadata()

SvgHandler::unpackMetadata (   $metadata)

◆ validateParam()

SvgHandler::validateParam (   $name,
  $value 
)
Parameters
string$nameParameter name
mixed$valueParameter value
Returns
bool Validity

Reimplemented from ImageHandler.

Definition at line 429 of file SVG.php.

References $name, $value, array(), and wfDebug().

◆ visibleMetadataFields()

SvgHandler::visibleMetadataFields ( )
protected

Get a list of metadata items which should be displayed when the metadata table is collapsed.

Returns
array of strings

Reimplemented from MediaHandler.

Definition at line 371 of file SVG.php.

References array().

Referenced by formatMetadata().

Member Data Documentation

◆ $metaConversion

SvgHandler::$metaConversion
staticprivate
Initial value:
'originalwidth' => 'ImageWidth',
'originalheight' => 'ImageLength',
'description' => 'ImageDescription',
'title' => 'ObjectName',
)

Definition at line 36 of file SVG.php.

◆ SVG_METADATA_VERSION

const SvgHandler::SVG_METADATA_VERSION = 2

Definition at line 30 of file SVG.php.


The documentation for this class was generated from the following file:
array
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.