|
MediaWiki
master
|
Handler for images that need to be transformed. More...


Public Member Functions | |
| autoRotateEnabled () | |
| Should we automatically rotate an image based on exif. More... | |
| canRotate () | |
| Returns whether the current scaler supports rotation. More... | |
| doTransform ($image, $dstPath, $dstUrl, $params, $flags=0) | |
| Create a thumbnail. More... | |
| escapeMagickInput ($path, $scene=false) | |
| Escape a string for ImageMagick's input filenames. More... | |
| escapeMagickOutput ($path, $scene=false) | |
| Escape a string for ImageMagick's output filename. More... | |
| escapeMagickProperty ($s) | |
| Escape a string for ImageMagick's property input (e.g. More... | |
| extractPreRotationDimensions ($params, $rotation) | |
| Extracts the width/height if the image will be scaled before rotating. More... | |
| getMediaTransformError ($params, $errMsg) | |
| Get a MediaTransformError with error 'thumbnail_error'. More... | |
| isImageAreaOkForThumbnaling ($file, &$params) | |
| Check if the file is smaller than the maximum image area for thumbnailing. More... | |
| mustRender ($file) | |
| Returns whether the file needs to be rendered. More... | |
| normaliseParams ($image, &$params) | |
| rotate ($file, $params) | |
| Rotate a thumbnail. More... | |
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) | |
| getLongDesc ($file) | |
| getParamMap () | |
| getScriptedTransform ($image, $script, $params) | |
| getScriptParams ($params) | |
| getShortDesc ($file) | |
| makeParamString ($params) | |
| normaliseParams ($image, &$params) | |
| parseParamString ($str) | |
| sanitizeParamsForBucketing ($params) | |
| validateParam ($name, $value) | |
| 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... | |
| canRender ($file) | |
| True if the handled types can be transformed. More... | |
| canRotate () | |
| True if the handler can rotate the media. More... | |
| convertMetadataVersion ($metadata, $version=1) | |
| Convert metadata version. More... | |
| doTransform ($image, $dstPath, $dstUrl, $params, $flags=0) | |
| Get a MediaTransformOutput object representing the transformed output. More... | |
| filterThumbnailPurgeList (&$files, $options) | |
| Remove files from the purge list. More... | |
| formatMetadata ($image, $context=false) | |
| Get an array structure that looks like this: More... | |
| formatMetadataHelper ($metadataArray, $context=false) | |
| sorts the visible/invisible field. 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... | |
| getDefaultRenderLanguage (File $file) | |
| On file types that support renderings in multiple languages, which language is used by default if unspecified. More... | |
| getDimensionsString ($file) | |
| Shown in file history box on image description page. More... | |
| getEntireText (File $file) | |
| Get the text of the entire document. More... | |
| getImageSize ($image, $path) | |
| Get an image size array like that returned by getimagesize(), or false if it can't be determined. More... | |
| getLength ($file) | |
| If its an audio file, return the length of the file. More... | |
| getLongDesc ($file) | |
| Long description. 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... | |
| 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) | |
| Generic getter for text layer. More... | |
| getParamMap () | |
| Get an associative array mapping magic word IDs to parameter names. 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... | |
| getScriptedTransform ($image, $script, $params) | |
| Get a MediaTransformOutput object representing an alternate of the transformed output which will call an intermediary thumbnail assist script. More... | |
| getShortDesc ($file) | |
| Short description. More... | |
| getStreamHeaders ($metadata) | |
| Get useful response headers for GET/HEAD requests for a file with the given metadata. More... | |
| getThumbType ($ext, $mime, $params=null) | |
| Get the thumbnail extension and MIME type for a given source MIME type. 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... | |
| isEnabled () | |
| False if the handler is disabled for all files. More... | |
| 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) | |
| True if the type has multi-page capabilities. More... | |
| isVectorized ($file) | |
| The material is vectorized and thus scaling is lossless. More... | |
| makeParamString ($params) | |
| Merge a parameter array into a string appropriate for inclusion in filenames. More... | |
| mustRender ($file) | |
| True if handled types cannot be displayed directly in a browser but can be rendered. More... | |
| normaliseParams ($image, &$params) | |
| Changes the parameter array as necessary, ready for transformation. More... | |
| pageCount (File $file) | |
| Page count for a multi-page document, false if unsupported or unknown. More... | |
| parseParamString ($str) | |
| Parse a param string made with makeParamString back into an array. More... | |
| parserTransformHook ($parser, $file) | |
| Modify the parser object post-transform. More... | |
| removeBadFile ($dstPath, $retval=0) | |
| Check for zero-sized thumbnails. More... | |
| sanitizeParamsForBucketing ($params) | |
| Returns a normalised params array for which parameters have been cleaned up for bucketing purposes. More... | |
| supportsBucketing () | |
| Returns whether or not this handler supports the chained generation of thumbnails according to buckets. More... | |
| validateParam ($name, $value) | |
| Validate a thumbnail parameter at parse time. More... | |
| verifyUpload ($fileName) | |
| File validation hook called on upload. More... | |
Protected Member Functions | |
| escapeMagickPath ($path, $scene=false) | |
| Armour a string against ImageMagick's GetPathComponent(). More... | |
| getClientScalingThumbnailImage ($image, $scalerParams) | |
| Get a ThumbnailImage that respresents an image that will be scaled client side. More... | |
| getMagickVersion () | |
| Retrieve the version of the installed ImageMagick You can use PHPs version_compare() to use this value Value is cached for one hour. More... | |
| getScalerType ($dstPath, $checkDstPath=true) | |
| Returns what sort of scaler type should be used. More... | |
| getThumbnailSource ($file, $params) | |
| Get the source file for the transform. More... | |
| transformCustom ($image, $params) | |
| Transform an image using a custom command. More... | |
| transformGd ($image, $params) | |
| Transform an image using the built in GD library. More... | |
| transformImageMagick ($image, $params) | |
| Transform an image using ImageMagick. More... | |
| transformImageMagickExt ($image, $params) | |
| Transform an image using the Imagick PHP extension. More... | |
Protected Member Functions inherited from MediaHandler | |
| 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... | |
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 | resetCache () |
| Resets all static caches. More... | |
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 |
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 MediaHandler[] | $handlers = [] |
| Instance cache with array of MediaHandler. More... | |
Handler for images that need to be transformed.
Definition at line 35 of file TransformationalImageHandler.php.
| TransformationalImageHandler::autoRotateEnabled | ( | ) |
Should we automatically rotate an image based on exif.
Definition at line 553 of file TransformationalImageHandler.php.
| TransformationalImageHandler::canRotate | ( | ) |
Returns whether the current scaler supports rotation.
Definition at line 542 of file TransformationalImageHandler.php.
Referenced by mustRender().
| 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 |
Definition at line 105 of file TransformationalImageHandler.php.
References $flags, $image, $params, $wgMaxImageArea, getClientScalingThumbnailImage(), getScalerType(), getThumbnailSource(), global, isImageAreaOkForThumbnaling(), normaliseParams(), MediaHandler\removeBadFile(), Hooks\run(), text, transformCustom(), transformGd(), transformImageMagick(), transformImageMagickExt(), wfDebug(), wfDebugLog(), wfHostname(), wfMessage(), and wfMkdirParents().
| TransformationalImageHandler::escapeMagickInput | ( | $path, | |
$scene = false |
|||
| ) |
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 |
| bool | string | $scene | The scene specification, or false if there is none |
| MWException |
Definition at line 445 of file TransformationalImageHandler.php.
References $path, and escapeMagickPath().
Referenced by BitmapHandler\rotate(), and BitmapHandler\transformImageMagick().
| TransformationalImageHandler::escapeMagickOutput | ( | $path, | |
$scene = false |
|||
| ) |
Escape a string for ImageMagick's output filename.
See InterpretImageFilename() in magick/image.c.
| string | $path | The file path |
| bool | string | $scene | The scene specification, or false if there is none |
Definition at line 465 of file TransformationalImageHandler.php.
References $path, and escapeMagickPath().
Referenced by BitmapHandler\rotate(), and BitmapHandler\transformImageMagick().
|
protected |
Armour a string against ImageMagick's GetPathComponent().
This is a helper function for escapeMagickInput() and escapeMagickOutput().
| string | $path | The file path |
| bool | string | $scene | The scene specification, or false if there is none |
| MWException |
Definition at line 480 of file TransformationalImageHandler.php.
References $path, and wfIsWindows().
Referenced by escapeMagickInput(), and escapeMagickOutput().
| TransformationalImageHandler::escapeMagickProperty | ( | $s | ) |
Escape a string for ImageMagick's property input (e.g.
-set -comment) See InterpretImageProperties() in magick/property.c
| string | $s |
Definition at line 415 of file TransformationalImageHandler.php.
References $s.
Referenced by BitmapHandler\transformImageMagick().
| 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 79 of file TransformationalImageHandler.php.
References $params.
Referenced by BitmapHandler\transformGd(), BitmapHandler\transformImageMagick(), and BitmapHandler\transformImageMagickExt().
|
protected |
Get a ThumbnailImage that respresents an image that will be scaled client side.
Definition at line 332 of file TransformationalImageHandler.php.
References $image, and $params.
Referenced by MockBitmapHandler\doClientImage(), and 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 511 of file TransformationalImageHandler.php.
References $cache, $matches, $retval, $wgImageMagickConvertCommand, CACHE_NONE, ObjectCache\getLocalServerInstance(), global, wfDebug(), wfEscapeShellArg(), and wfShellExec().
Referenced by BitmapHandler\transformImageMagick().
| 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 390 of file TransformationalImageHandler.php.
References $params.
Referenced by BitmapHandler\transformCustom(), transformCustom(), BitmapHandler\transformGd(), transformGd(), BitmapHandler\transformImageMagick(), transformImageMagick(), BitmapHandler\transformImageMagickExt(), and 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 array( 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 | $dstPath | |
| bool | $checkDstPath | Check that $dstPath is valid |
Referenced by doTransform(), and isImageAreaOkForThumbnaling().
|
protected |
Get the source file for the transform.
| File | $file | |
| array | $params |
Definition at line 295 of file TransformationalImageHandler.php.
References $params.
Referenced by doTransform().
| 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 594 of file TransformationalImageHandler.php.
References $params, $wgMaxImageArea, getScalerType(), global, and Hooks\run().
Referenced by doTransform().
| 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 |
Definition at line 580 of file TransformationalImageHandler.php.
References canRotate(), and MediaHandler\getRotation().
| 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. |
Definition at line 43 of file TransformationalImageHandler.php.
References $image, and $params.
Referenced by doTransform().
| TransformationalImageHandler::rotate | ( | $file, | |
| $params | |||
| ) |
Rotate a thumbnail.
This is a stub. See BitmapHandler::rotate.
| File | $file | |
| array | $params | Rotate parameters. 'rotation' clockwise rotation in degrees, allowed are multiples of 90 |
Definition at line 568 of file TransformationalImageHandler.php.
|
protected |
Transform an image using a custom command.
This is a stub method. The real method is in BitmapHander.
Definition at line 379 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().
|
protected |
Transform an image using the built in GD library.
This is a stub method. The real method is in BitmapHander.
Definition at line 405 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().
|
protected |
Transform an image using ImageMagick.
This is a stub method. The real method is in BitmapHander.
Definition at line 351 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().
|
protected |
Transform an image using the Imagick PHP extension.
This is a stub method. The real method is in BitmapHander.
Definition at line 365 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().