|
MediaWiki master
|
Handler for SVG images. More...
Inherits MediaWiki\Media\ImageHandler.

Public Member Functions | ||||||||||
| allowRenderingByUserAgent (File $file) | ||||||||||
| canAnimateThumbnail ( $file) | ||||||||||
| We do not support making animated svg thumbnails. | ||||||||||
| doTransform ( $image, $dstPath, $dstUrl, $params, $flags=0) | ||||||||||
| formatMetadata ( $file, $context=false) | ||||||||||
| getAvailableLanguages (File $file) | ||||||||||
| Which languages (systemLanguage attribute) is supported. | ||||||||||
| 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.
| ||||||||||
| getDefaultRenderLanguage (File $file) | ||||||||||
| What language to render file in if none selected. | ||||||||||
| getLongDesc ( $file) | ||||||||||
| Subtitle for the image. | ||||||||||
| getMatchedLanguage ( $userPreferredLanguage, array $svgLanguages) | ||||||||||
SVG's systemLanguage matching rules state: 'The systemLanguage attribute ... [e]valuates to "true" if one of the languages indicated by user preferences exactly equals one of the languages given in the value of this parameter, or if one of the languages indicated by user preferences exactly equals a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix is "-". | ||||||||||
| getMetadataType ( $image) | ||||||||||
Get a string describing the type of metadata, for display purposes.
| ||||||||||
| getParamMap () | ||||||||||
Get an associative array mapping magic word IDs to parameter names.Will be used by the parser to identify parameters.
| ||||||||||
| getSizeAndMetadata ( $state, $filename) | ||||||||||
| getThumbType ( $ext, $mime, $params=null) | ||||||||||
Get the thumbnail extension and MIME type for a given source MIME type.
| ||||||||||
| isAnimatedImage ( $file) | ||||||||||
| isEnabled () | ||||||||||
False if the handler is disabled for all files.
| ||||||||||
| isFileMetadataValid ( $image) | ||||||||||
Check if the metadata 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).
This was introduced in 1.37 to replace isMetadataValid(), which took a serialized string as a parameter. Handlers overriding this method are expected to use accessors to get the metadata out of the File. The reasons for the change were to get rid of serialization, and to allow handlers to partially load metadata with getMetadataItem(). For example a handler could just validate a version number.
| ||||||||||
| isVectorized ( $file) | ||||||||||
The material is vectorized and thus scaling is lossless.
| ||||||||||
| makeParamString ( $params) | ||||||||||
| mustRender ( $file) | ||||||||||
True if handled types cannot be displayed directly in a browser but can be rendered.
| ||||||||||
| normaliseParams ( $image, &$params) | ||||||||||
| parseParamString ( $str) | ||||||||||
Parse a param string made with makeParamString back into an array.
| ||||||||||
| rasterize ( $srcPath, $dstPath, $width, $height, $lang=false) | ||||||||||
| Transform an SVG file to PNG This function can be called outside of thumbnail contexts. | ||||||||||
| validateParam ( $name, $value) | ||||||||||
Public Member Functions inherited from MediaWiki\Media\ImageHandler | ||||||||||
| canRender ( $file) | ||||||||||
True if the handled types can be transformed.
| ||||||||||
| getDimensionsString ( $file) | ||||||||||
Shown in file history box on image description page.
| ||||||||||
| getImageArea ( $image) | ||||||||||
| Function that returns the number of pixels to be thumbnailed. | ||||||||||
| 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.
| ||||||||||
| 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().
| ||||||||||
| getShortDesc ( $file) | ||||||||||
Short description.Shown on Special:Search results.Until MediaWiki 1.45, the return value was poorly documented, and some subclasses returned HTML while others returned plain text. When overriding this method, you should return safe HTML, e.g. using Message::escaped(). When calling this method, you should treat it as returning unsafe HTML, and call Sanitizer::removeSomeTags() on the result.
| ||||||||||
| sanitizeParamsForBucketing ( $params) | ||||||||||
Returns a normalised params array for which parameters have been cleaned up for bucketing purposes.
| ||||||||||
Public Member Functions inherited from MediaWiki\Media\MediaHandler | ||||||||||
| canRotate () | ||||||||||
| True if the handler can rotate the media. | ||||||||||
| convertMetadataVersion ( $metadata, $version=1) | ||||||||||
| Convert metadata version. | ||||||||||
| filterThumbnailPurgeList (&$files, $options) | ||||||||||
| Remove files from the purge list. | ||||||||||
| getContentHeaders ( $metadata) | ||||||||||
| Get useful response headers for GET/HEAD requests for a file with the given metadata. | ||||||||||
| getEntireText (File $file) | ||||||||||
| Get the text of the entire document. | ||||||||||
| getLength ( $file) | ||||||||||
| If it's an audio file, return the length of the file. | ||||||||||
| getMetadata ( $image, $path) | ||||||||||
| Get handler-specific metadata which will be saved in the img_metadata field. | ||||||||||
| 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. | ||||||||||
| getPageText (File $image, $page) | ||||||||||
| Generic getter for text layer. | ||||||||||
| 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. | ||||||||||
| getSizeAndMetadataWithFallback ( $file, $path) | ||||||||||
| Get the metadata array and the image size, with b/c fallback. | ||||||||||
| getTransform ( $image, $dstPath, $dstUrl, $params) | ||||||||||
| Get a MediaTransformOutput object representing the transformed output. | ||||||||||
| getWarningConfig ( $file) | ||||||||||
| Gets configuration for the file warning message. | ||||||||||
| isExpensiveToThumbnail ( $file) | ||||||||||
| True if creating thumbnails from the file is large or otherwise resource-intensive. | ||||||||||
| isMetadataValid ( $image, $metadata) | ||||||||||
| Check if the metadata string is valid for this handler. | ||||||||||
| isMultiPage ( $file) | ||||||||||
| True if the type has multi-page capabilities. | ||||||||||
| pageCount (File $file) | ||||||||||
| Page count for a multi-page document, false if unsupported or unknown. | ||||||||||
| parserTransformHook ( $parser, $file) | ||||||||||
| Modify the parser object post-transform. | ||||||||||
| removeBadFile ( $dstPath, $retval=0) | ||||||||||
| Check for zero-sized thumbnails. | ||||||||||
| supportsBucketing () | ||||||||||
| Returns whether or not this handler supports the chained generation of thumbnails according to buckets. | ||||||||||
| useSplitMetadata () | ||||||||||
| If this returns true, LocalFile may split metadata up and store its constituent items separately. | ||||||||||
| verifyUpload ( $fileName) | ||||||||||
| File validation hook called on upload. | ||||||||||
Static Public Member Functions | |
| static | rasterizeImagickExt ( $srcPath, $dstPath, $width, $height) |
Static Public Member Functions inherited from MediaWiki\Media\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. | |
| static | getGeneralLongDesc ( $file) |
| Used instead of getLongDesc if there is no handler registered for file. | |
| static | getGeneralShortDesc ( $file) |
| Used instead of getShortDesc if there is no handler registered for file. | |
| static | getHandler ( $type) |
| Get a MediaHandler for a given MIME type from the instance cache. | |
| static | getMetadataVersion () |
| Get metadata version. | |
| 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. | |
Public Attributes | |
| const | SVG_METADATA_VERSION = 2 |
Public Attributes inherited from MediaWiki\Media\MediaHandler | |
| const | METADATA_BAD = false |
| const | METADATA_COMPATIBLE = 2 |
| const | METADATA_GOOD = true |
| const | TRANSFORM_LATER = 1 |
Protected Member Functions | |
| getClientScalingThumbnailImage ( $image, $params) | |
| Get a ThumbnailImage that represents an image that will be scaled client side. | |
| getLanguageFromParams (array $params) | |
| Determines render language from image parameters This is a lowercase IETF language. | |
| getScriptParams ( $params) | |
| normaliseParamsInternal ( $image, $params) | |
| Code taken out of normaliseParams() for testability. | |
| validateMetadata ( $unser) | |
| visibleMetadataFields () | |
Get a list of metadata items which should be displayed when the metadata table is collapsed.
| |
Protected Member Functions inherited from MediaWiki\Media\MediaHandler | |
| formatMetadataHelper ( $metadataArray, $context=false) | |
| sorts the visible/invisible field. | |
| formatTag (string $key, $vals, $context=false) | |
| Override default formatting for the given metadata field. | |
| hasMostDerivedMethod ( $name) | |
| Check whether a method is implemented in the most derived class. | |
| logErrorForExternalProcess ( $retval, $err, $cmd) | |
| Log an error that occurred in an external process. | |
| useLegacyMetadata () | |
| If this returns true, the new method getSizeAndMetadata() will not be called. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from MediaWiki\Media\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. | |
Handler for SVG images.
Definition at line 27 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::allowRenderingByUserAgent | ( | File | $file | ) |
Definition at line 60 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::canAnimateThumbnail | ( | $file | ) |
We do not support making animated svg thumbnails.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 197 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::doTransform | ( | $image, | |
| $dstPath, | |||
| $dstUrl, | |||
| $params, | |||
| $flags = 0 ) |
| File | $image | |
| string | $dstPath | |
| string | $dstUrl | |
| array | $params | |
| int | $flags |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 258 of file SvgHandler.php.
References wfDebugLog(), wfHostname(), wfMessage(), wfMkdirParents(), wfRandomString(), and wfTempDir().
| MediaWiki\Media\SvgHandler::formatMetadata | ( | $file, | |
| $context = false ) |
| File | $file | |
| IContextSource | false | $context |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 551 of file SvgHandler.php.
References MediaWiki\FileRepo\File\File\getMetadataArray().
| MediaWiki\Media\SvgHandler::getAvailableLanguages | ( | File | $file | ) |
Which languages (systemLanguage attribute) is supported.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 123 of file SvgHandler.php.
References MediaWiki\FileRepo\File\File\getMetadataArray(), and MediaWiki\Media\SVGReader\LANG_FULL_MATCH.
|
protected |
Get a ThumbnailImage that represents an image that will be scaled client side.
| File | $image | File associated with this thumbnail |
| array | $params | Array with scaler params |
Definition at line 439 of file SvgHandler.php.
References $url.
| MediaWiki\Media\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.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 672 of file SvgHandler.php.
References MediaWiki\FileRepo\File\File\getMetadataArray().
| MediaWiki\Media\SvgHandler::getDefaultRenderLanguage | ( | File | $file | ) |
What language to render file in if none selected.
| File | $file | Language code |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 188 of file SvgHandler.php.
|
protected |
Determines render language from image parameters This is a lowercase IETF language.
| array | $params |
Definition at line 178 of file SvgHandler.php.
| MediaWiki\Media\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.
| File | $file |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 468 of file SvgHandler.php.
References MediaWiki\FileRepo\File\File\getHeight(), MediaWiki\FileRepo\File\File\getMetadataArray(), MediaWiki\FileRepo\File\File\getSize(), MediaWiki\FileRepo\File\File\getWidth(), and wfMessage().
| MediaWiki\Media\SvgHandler::getMatchedLanguage | ( | $userPreferredLanguage, | |
| array | $svgLanguages ) |
SVG's systemLanguage matching rules state: 'The systemLanguage attribute ... [e]valuates to "true" if one of the languages indicated by user preferences exactly equals one of the languages given in the value of this parameter, or if one of the languages indicated by user preferences exactly equals a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix is "-".
'
Return the first element of $svgLanguages that matches $userPreferredLanguage
| string | $userPreferredLanguage | |
| string[] | $svgLanguages |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 151 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::getMetadataType | ( | $image | ) |
Get a string describing the type of metadata, for display purposes.
| File | $image |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 523 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::getParamMap | ( | ) |
Get an associative array mapping magic word IDs to parameter names.Will be used by the parser to identify parameters.
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 654 of file SvgHandler.php.
|
protected |
| array | $params |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 662 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::getSizeAndMetadata | ( | $state, | |
| $filename ) |
| MediaHandlerState | $state | |
| string | $filename |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 491 of file SvgHandler.php.
References wfDebug().
| MediaWiki\Media\SvgHandler::getThumbType | ( | $ext, | |
| $mime, | |||
| $params = null ) |
Get the thumbnail extension and MIME type for a given source MIME type.
| string | $ext | Extension of original file |
| string | $mime | MIME type of original file |
| array | null | $params | Handler specific rendering parameters |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 455 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::isAnimatedImage | ( | $file | ) |
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 101 of file SvgHandler.php.
References MediaWiki\FileRepo\File\File\getMetadataArray().
| MediaWiki\Media\SvgHandler::isEnabled | ( | ) |
False if the handler is disabled for all files.
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 44 of file SvgHandler.php.
References MediaWiki\MediaWikiServices\getInstance(), MediaWiki\MainConfigNames\SVGConverter, MediaWiki\MainConfigNames\SVGConverters, MediaWiki\MainConfigNames\SVGNativeRendering, and wfDebug().
| MediaWiki\Media\SvgHandler::isFileMetadataValid | ( | $image | ) |
Check if the metadata 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).
This was introduced in 1.37 to replace isMetadataValid(), which took a serialized string as a parameter. Handlers overriding this method are expected to use accessors to get the metadata out of the File. The reasons for the change were to get rid of serialization, and to allow handlers to partially load metadata with getMetadataItem(). For example a handler could just validate a version number.
| File | $image |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 528 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::isVectorized | ( | $file | ) |
The material is vectorized and thus scaling is lossless.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 93 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::makeParamString | ( | $params | ) |
| array | $params | Name=>value pairs of parameters |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 619 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::mustRender | ( | $file | ) |
True if handled types cannot be displayed directly in a browser but can be rendered.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 88 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::normaliseParams | ( | $image, | |
| & | $params ) |
| File | $image | |
| array | &$params |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 206 of file SvgHandler.php.
|
protected |
Code taken out of normaliseParams() for testability.
| File | $image | |
| array | $params |
Definition at line 224 of file SvgHandler.php.
References MediaWiki\MediaWikiServices\getInstance(), and MediaWiki\MainConfigNames\SVGMaxSize.
| MediaWiki\Media\SvgHandler::parseParamString | ( | $str | ) |
Parse a param string made with makeParamString back into an array.
| string | $str | The parameter string without file name (e.g. 122px) |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 638 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::rasterize | ( | $srcPath, | |
| $dstPath, | |||
| $width, | |||
| $height, | |||
| $lang = false ) |
Transform an SVG file to PNG This function can be called outside of thumbnail contexts.
| string | $srcPath | |
| string | $dstPath | |
| int | $width | |
| int | $height | |
| string | false | $lang | Language code of the language to render the SVG in |
Definition at line 356 of file SvgHandler.php.
References MediaWiki\MediaWikiServices\getInstance(), MediaWiki\MainConfigNames\SVGConverter, MediaWiki\MainConfigNames\SVGConverterPath, MediaWiki\MainConfigNames\SVGConverters, wfDebug(), and wfShellExecWithStderr().
Referenced by MediaWiki\ResourceLoader\Image\rasterize().
|
static |
| string | $srcPath | |
| string | $dstPath | |
| int | $width | |
| int | $height |
Definition at line 415 of file SvgHandler.php.
|
protected |
Definition at line 514 of file SvgHandler.php.
| MediaWiki\Media\SvgHandler::validateParam | ( | $name, | |
| $value ) |
| string | $name | Parameter name |
| mixed | $value | Parameter value |
Reimplemented from MediaWiki\Media\ImageHandler.
Definition at line 595 of file SvgHandler.php.
|
protected |
Get a list of metadata items which should be displayed when the metadata table is collapsed.
Reimplemented from MediaWiki\Media\MediaHandler.
Definition at line 542 of file SvgHandler.php.
| const MediaWiki\Media\SvgHandler::SVG_METADATA_VERSION = 2 |
Definition at line 28 of file SvgHandler.php.