|
MediaWiki master
|
Handler for images that need to be transformed. More...
Inherits MediaWiki\Media\ImageHandler.
Inherited by MediaWiki\Media\BitmapHandler.

Public Member Functions | ||||||||||
| autoRotateEnabled () | ||||||||||
| Should we automatically rotate an image based on exif. | ||||||||||
| canRotate () | ||||||||||
| Returns whether the current scaler supports rotation. | ||||||||||
| doTransform ( $image, $dstPath, $dstUrl, $params, $flags=0) | ||||||||||
| Create a thumbnail. | ||||||||||
| extractPreRotationDimensions ( $params, $rotation) | ||||||||||
| Extracts the width/height if the image will be scaled before rotating. | ||||||||||
| getMediaTransformError ( $params, $errMsg) | ||||||||||
| Get a MediaTransformError with error 'thumbnail_error'. | ||||||||||
| isImageAreaOkForThumbnaling ( $file, &$params) | ||||||||||
| Check if the file is smaller than the maximum image area for thumbnailing. | ||||||||||
| mustRender ( $file) | ||||||||||
| Returns whether the file needs to be rendered. | ||||||||||
| normaliseParams ( $image, &$params) | ||||||||||
| rotate ( $file, $params) | ||||||||||
| Rotate a thumbnail. | ||||||||||
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.
| ||||||||||
| getLongDesc ( $file) | ||||||||||
Long description.Shown under image on image description page surrounded by ().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.
| ||||||||||
| getParamMap () | ||||||||||
Get an associative array mapping magic word IDs to parameter names.Will be used by the parser to identify parameters.
| ||||||||||
| 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.
| ||||||||||
| getSizeAndMetadata ( $state, $path) | ||||||||||
Get image size information and metadata array.If this returns null, the caller will fall back to getImageSize() and getMetadata().If getImageSize() or getMetadata() are implemented in the most derived class, they will be used instead of this function. To override this behaviour, override useLegacyMetadata().
| ||||||||||
| makeParamString ( $params) | ||||||||||
Merge a parameter array into a string appropriate for inclusion in filenames.
| ||||||||||
| parseParamString ( $str) | ||||||||||
Parse a param string made with makeParamString back into an array.
| ||||||||||
| sanitizeParamsForBucketing ( $params) | ||||||||||
Returns a normalised params array for which parameters have been cleaned up for bucketing purposes.
| ||||||||||
| validateParam ( $name, $value) | ||||||||||
Validate a thumbnail parameter at parse time.Return true to accept the parameter, and false to reject it. If you return false, the parser will do something quiet and forgiving.
| ||||||||||
Public Member Functions inherited from MediaWiki\Media\MediaHandler | ||||||||||
| canAnimateThumbnail ( $file) | ||||||||||
| If the material is animated, we can animate the thumbnail. | ||||||||||
| convertMetadataVersion ( $metadata, $version=1) | ||||||||||
| Convert metadata version. | ||||||||||
| filterThumbnailPurgeList (&$files, $options) | ||||||||||
| Remove files from the purge list. | ||||||||||
| formatMetadata ( $image, $context=false) | ||||||||||
| Get an array structure that looks like this: | ||||||||||
| getAvailableLanguages (File $file) | ||||||||||
| Get list of languages file can be viewed in. | ||||||||||
| getCommonMetaArray (File $file) | ||||||||||
| Get an array of standard (FormatMetadata type) metadata values. | ||||||||||
| getContentHeaders ( $metadata) | ||||||||||
| Get useful response headers for GET/HEAD requests for a file with the given metadata. | ||||||||||
| getDefaultRenderLanguage (File $file) | ||||||||||
| On file types that support renderings in multiple languages, which language is used by default if unspecified. | ||||||||||
| getEntireText (File $file) | ||||||||||
| Get the text of the entire document. | ||||||||||
| getLength ( $file) | ||||||||||
| If it's an audio file, return the length of the file. | ||||||||||
| getMatchedLanguage ( $userPreferredLanguage, array $availableLanguages) | ||||||||||
| When overridden in a descendant class, returns a language code most suiting. | ||||||||||
| getMetadata ( $image, $path) | ||||||||||
| Get handler-specific metadata which will be saved in the img_metadata field. | ||||||||||
| getMetadataType ( $image) | ||||||||||
| Get a string describing the type of metadata, for display purposes. | ||||||||||
| 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. | ||||||||||
| getThumbType ( $ext, $mime, $params=null) | ||||||||||
| Get the thumbnail extension and MIME type for a given source MIME type. | ||||||||||
| getTransform ( $image, $dstPath, $dstUrl, $params) | ||||||||||
| Get a MediaTransformOutput object representing the transformed output. | ||||||||||
| getWarningConfig ( $file) | ||||||||||
| Gets configuration for the file warning message. | ||||||||||
| isAnimatedImage ( $file) | ||||||||||
| The material is an image, and is animated. | ||||||||||
| isEnabled () | ||||||||||
| False if the handler is disabled for all files. | ||||||||||
| isExpensiveToThumbnail ( $file) | ||||||||||
| True if creating thumbnails from the file is large or otherwise resource-intensive. | ||||||||||
| isFileMetadataValid ( $image) | ||||||||||
| Check if the metadata is valid for this handler. | ||||||||||
| isMetadataValid ( $image, $metadata) | ||||||||||
| Check if the metadata string is valid for this handler. | ||||||||||
| isMultiPage ( $file) | ||||||||||
| True if the type has multi-page capabilities. | ||||||||||
| isVectorized ( $file) | ||||||||||
| The material is vectorized and thus scaling is lossless. | ||||||||||
| 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. | ||||||||||
Protected Member Functions | |
| escapeMagickInput ( $path, $scene=false) | |
| Escape a string for ImageMagick's input filenames. | |
| escapeMagickOutput ( $path, $scene=false) | |
| Escape a string for ImageMagick's output filename. | |
| escapeMagickPath ( $path, $scene=false) | |
| Armour a string against ImageMagick's GetPathComponent(). | |
| escapeMagickProperty ( $s) | |
| Escape a string for ImageMagick's property input (e.g. | |
| getClientScalingThumbnailImage ( $image, $scalerParams) | |
| Get a ThumbnailImage that represents an image that will be scaled client side. | |
| getMagickVersion () | |
| Retrieve the version of the installed ImageMagick You can use PHPs version_compare() to use this value Value is cached for one hour. | |
| getScalerType ( $dstPath, $checkDstPath=true) | |
| Returns what sort of scaler type should be used. | |
| getThumbnailSource ( $file, $params) | |
| Get the source file for the transform. | |
| transformCustom ( $image, $params) | |
| Transform an image using a custom command. | |
| transformGd ( $image, $params) | |
| Transform an image using the built in GD library. | |
| transformImageMagick ( $image, $params) | |
| Transform an image using ImageMagick. | |
| transformImageMagickExt ( $image, $params) | |
| Transform an image using the Imagick PHP extension. | |
Protected Member Functions inherited from MediaWiki\Media\ImageHandler | |
| getScriptParams ( $params) | |
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. | |
| visibleMetadataFields () | |
| Get a list of metadata items which should be displayed when the metadata table is collapsed. | |
Additional Inherited Members | |
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 inherited from MediaWiki\Media\MediaHandler | |
| const | METADATA_BAD = false |
| const | METADATA_COMPATIBLE = 2 |
| const | METADATA_GOOD = true |
| const | TRANSFORM_LATER = 1 |
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 images that need to be transformed.
Definition at line 32 of file TransformationalImageHandler.php.
| MediaWiki\Media\TransformationalImageHandler::autoRotateEnabled | ( | ) |
Should we automatically rotate an image based on exif.
Reimplemented in MediaWiki\Media\BitmapHandler.
Definition at line 571 of file TransformationalImageHandler.php.
| MediaWiki\Media\TransformationalImageHandler::canRotate | ( | ) |
Returns whether the current scaler supports rotation.
Reimplemented from MediaWiki\Media\MediaHandler.
Reimplemented in MediaWiki\Media\BitmapHandler.
Definition at line 559 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\TransformationalImageHandler\mustRender().
| MediaWiki\Media\TransformationalImageHandler::doTransform | ( | $image, | |
| $dstPath, | |||
| $dstUrl, | |||
| $params, | |||
| $flags = 0 ) |
Create a thumbnail.
This sets up various parameters, and then calls a helper method based on $this->getScalerType in order to scale the image.
| File | $image | |
| string | $dstPath | |
| string | $dstUrl | |
| array | $params | |
| int | $flags |
Reimplemented from MediaWiki\Media\MediaHandler.
Reimplemented in MediaWiki\Media\BitmapHandler_ClientOnly.
Definition at line 104 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\getClientScalingThumbnailImage(), MediaWiki\MediaWikiServices\getInstance(), MediaWiki\Media\TransformationalImageHandler\getScalerType(), MediaWiki\Media\TransformationalImageHandler\getThumbnailSource(), MediaWiki\MainConfigNames\MaxImageArea, MediaWiki\Media\TransformationalImageHandler\normaliseParams(), MediaWiki\Media\MediaHandler\removeBadFile(), MediaWiki\Media\TransformationalImageHandler\transformCustom(), MediaWiki\Media\TransformationalImageHandler\transformGd(), MediaWiki\Media\TransformationalImageHandler\transformImageMagick(), MediaWiki\Media\TransformationalImageHandler\transformImageMagickExt(), wfDebug(), wfDebugLog(), wfHostname(), wfMessage(), and wfMkdirParents().
|
protected |
Escape a string for ImageMagick's input filenames.
See ExpandFilenames() and GetPathComponent() in magick/utility.c.
This won't work with an initial ~ or @, so input files should be prefixed with the directory name.
Glob character unescaping is broken in ImageMagick before 6.6.1-5, but it's broken in a way that doesn't involve trying to convert every file in a directory, so we're better off escaping and waiting for the bugfix to filter down to users.
| string | $path | The file path |
| string | false | $scene | The scene specification, or false if there is none |
Definition at line 460 of file TransformationalImageHandler.php.
References $path, and MediaWiki\Media\TransformationalImageHandler\escapeMagickPath().
Referenced by MediaWiki\Media\BitmapHandler\rotate(), and MediaWiki\Media\BitmapHandler\transformImageMagick().
|
protected |
Escape a string for ImageMagick's output filename.
See InterpretImageFilename() in magick/image.c.
| string | $path | The file path |
| string | false | $scene | The scene specification, or false if there is none |
Definition at line 480 of file TransformationalImageHandler.php.
References $path, and MediaWiki\Media\TransformationalImageHandler\escapeMagickPath().
Referenced by MediaWiki\Media\BitmapHandler\rotate(), and MediaWiki\Media\BitmapHandler\transformImageMagick().
|
protected |
Armour a string against ImageMagick's GetPathComponent().
This is a helper function for escapeMagickInput() and escapeMagickOutput().
| string | $path | The file path |
| string | false | $scene | The scene specification, or false if there is none |
Definition at line 494 of file TransformationalImageHandler.php.
References $path, and wfIsWindows().
Referenced by MediaWiki\Media\TransformationalImageHandler\escapeMagickInput(), and MediaWiki\Media\TransformationalImageHandler\escapeMagickOutput().
|
protected |
Escape a string for ImageMagick's property input (e.g.
-set -comment) See InterpretImageProperties() in magick/property.c
| string | $s |
Definition at line 431 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\BitmapHandler\transformImageMagick().
| MediaWiki\Media\TransformationalImageHandler::extractPreRotationDimensions | ( | $params, | |
| $rotation ) |
Extracts the width/height if the image will be scaled before rotating.
This will match the physical size/aspect ratio of the original image prior to application of the rotation – so for a portrait image that's stored as raw landscape with 90-degress rotation, the resulting size will be wider than it is tall.
| array | $params | Parameters as returned by normaliseParams |
| int | $rotation | The rotation angle that will be applied |
Definition at line 77 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\BitmapHandler\transformGd(), MediaWiki\Media\BitmapHandler\transformImageMagick(), and MediaWiki\Media\BitmapHandler\transformImageMagickExt().
|
protected |
Get a ThumbnailImage that represents an image that will be scaled client side.
| File | $image | File associated with this thumbnail |
| array | $scalerParams | Array with scaler params |
Definition at line 339 of file TransformationalImageHandler.php.
References $url.
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
|
protected |
Retrieve the version of the installed ImageMagick You can use PHPs version_compare() to use this value Value is cached for one hour.
Definition at line 525 of file TransformationalImageHandler.php.
References $matches, MediaWiki\MediaWikiServices\getInstance(), MediaWiki\MainConfigNames\ImageMagickConvertCommand, wfDebug(), and wfShellExecWithStderr().
| MediaWiki\Media\TransformationalImageHandler::getMediaTransformError | ( | $params, | |
| $errMsg ) |
Get a MediaTransformError with error 'thumbnail_error'.
| array | $params | Parameter array as passed to the transform* functions |
| string | $errMsg | Error message |
Definition at line 406 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\BitmapHandler\transformCustom(), MediaWiki\Media\TransformationalImageHandler\transformCustom(), MediaWiki\Media\BitmapHandler\transformGd(), MediaWiki\Media\TransformationalImageHandler\transformGd(), MediaWiki\Media\BitmapHandler\transformImageMagick(), MediaWiki\Media\TransformationalImageHandler\transformImageMagick(), MediaWiki\Media\BitmapHandler\transformImageMagickExt(), and MediaWiki\Media\TransformationalImageHandler\transformImageMagickExt().
|
abstractprotected |
Returns what sort of scaler type should be used.
Values can be one of client, im, custom, gd, imext, or an array of object, method-name to call that specific method.
If specifying a custom scaler command with [ Obj, method ], the method in question should take 2 parameters, a File object, and a $scalerParams array with various options (See doTransform for what is in $scalerParams). On error it should return a MediaTransformError object. On success it should return false, and simply make sure the thumbnail file is located at $scalerParams['dstPath'].
If there is a problem with the output path, it returns "client" to do client side scaling.
| string | null | $dstPath | |
| bool | $checkDstPath | Check that $dstPath is valid |
Reimplemented in MediaWiki\Media\BitmapHandler.
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
|
protected |
Get the source file for the transform.
| File | $file | |
| array | $params |
Definition at line 301 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
| MediaWiki\Media\TransformationalImageHandler::isImageAreaOkForThumbnaling | ( | $file, | |
| & | $params ) |
Check if the file is smaller than the maximum image area for thumbnailing.
Runs the 'BitmapHandlerCheckImageArea' hook.
| File | $file | |
| array | &$params |
Definition at line 615 of file TransformationalImageHandler.php.
References MediaWiki\MediaWikiServices\getInstance(), and MediaWiki\MainConfigNames\MaxImageArea.
| MediaWiki\Media\TransformationalImageHandler::mustRender | ( | $file | ) |
Returns whether the file needs to be rendered.
Returns true if the file requires rotation and we are able to rotate it.
| File | $file |
Reimplemented from MediaWiki\Media\MediaHandler.
Reimplemented in MediaWiki\Media\BmpHandler, MediaWiki\Media\Jpeg2000Handler, MediaWiki\Media\TiffHandler, MediaWiki\Media\WebPHandler, and MediaWiki\Media\XCFHandler.
Definition at line 600 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\canRotate(), and MediaWiki\Media\MediaHandler\getRotation().
| MediaWiki\Media\TransformationalImageHandler::normaliseParams | ( | $image, | |
| & | $params ) |
| File | $image | |
| array | &$params | Transform parameters. Entries with the keys 'width' and 'height' are the respective screen width and height, while the keys 'physicalWidth' and 'physicalHeight' indicate the thumbnail dimensions. |
Reimplemented from MediaWiki\Media\ImageHandler.
Reimplemented in MediaWiki\Media\BitmapHandler, MediaWiki\Media\BitmapHandler_ClientOnly, and MediaWiki\Media\JpegHandler.
Definition at line 41 of file TransformationalImageHandler.php.
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
| MediaWiki\Media\TransformationalImageHandler::rotate | ( | $file, | |
| $params ) |
Rotate a thumbnail.
This is a stub. See BitmapHandler::rotate.
| File | $file | |
| array{rotation:int,srcPath:string,dstPath:string} | $params Rotate parameters. 'rotation' clockwise rotation in degrees, allowed are multiples of 90 |
Reimplemented in MediaWiki\Media\BitmapHandler, and MediaWiki\Media\JpegHandler.
Definition at line 587 of file TransformationalImageHandler.php.
|
protected |
Transform an image using a custom command.
This is a stub method. The real method is in BitmapHandler.
| File | $image | File associated with this thumbnail |
| array | $params | Array with scaler params |
Reimplemented in MediaWiki\Media\BitmapHandler.
Definition at line 395 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\getMediaTransformError().
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
|
protected |
Transform an image using the built in GD library.
This is a stub method. The real method is in BitmapHandler.
| File | $image | File associated with this thumbnail |
| array | $params | Array with scaler params |
Reimplemented in MediaWiki\Media\BitmapHandler.
Definition at line 421 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\getMediaTransformError().
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
|
protected |
Transform an image using ImageMagick.
This is a stub method. The real method is in BitmapHandler.
| File | $image | File associated with this thumbnail |
| array | $params | Array with scaler params |
Reimplemented in MediaWiki\Media\BitmapHandler, and MediaWiki\Media\JpegHandler.
Definition at line 365 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\getMediaTransformError().
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().
|
protected |
Transform an image using the Imagick PHP extension.
This is a stub method. The real method is in BitmapHandler.
| File | $image | File associated with this thumbnail |
| array | $params | Array with scaler params |
Reimplemented in MediaWiki\Media\BitmapHandler.
Definition at line 380 of file TransformationalImageHandler.php.
References MediaWiki\Media\TransformationalImageHandler\getMediaTransformError().
Referenced by MediaWiki\Media\TransformationalImageHandler\doTransform().