MediaWiki master
|
Handler for images that need to be transformed. More...
Inherits ImageHandler.
Inherited by 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 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. | ||||||||||
getLongDesc ( $file) | ||||||||||
Long description.Shown under image on image description page surrounded by ().
| ||||||||||
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.
| ||||||||||
getSizeAndMetadata ( $state, $path) | ||||||||||
Get image size information and metadata array. | ||||||||||
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 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 respresents 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 ImageHandler | |
getScriptParams ( $params) | |
Protected Member Functions inherited from 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 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 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. | |
Handler for images that need to be transformed.
Definition at line 42 of file TransformationalImageHandler.php.
TransformationalImageHandler::autoRotateEnabled | ( | ) |
Should we automatically rotate an image based on exif.
Reimplemented in BitmapHandler.
Definition at line 581 of file TransformationalImageHandler.php.
TransformationalImageHandler::canRotate | ( | ) |
Returns whether the current scaler supports rotation.
Reimplemented from MediaHandler.
Reimplemented in BitmapHandler.
Definition at line 569 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 |
Reimplemented from MediaHandler.
Reimplemented in BitmapHandler_ClientOnly.
Definition at line 114 of file TransformationalImageHandler.php.
References $params, getClientScalingThumbnailImage(), getScalerType(), getThumbnailSource(), normaliseParams(), MediaHandler\removeBadFile(), transformCustom(), transformGd(), transformImageMagick(), 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 470 of file TransformationalImageHandler.php.
References $path, and escapeMagickPath().
Referenced by BitmapHandler\rotate(), and 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 490 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 |
string | false | $scene | The scene specification, or false if there is none |
Definition at line 504 of file TransformationalImageHandler.php.
References $path, and wfIsWindows().
Referenced by escapeMagickInput(), and 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 441 of file TransformationalImageHandler.php.
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 87 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 349 of file TransformationalImageHandler.php.
Referenced by 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 535 of file TransformationalImageHandler.php.
References $matches, wfDebug(), and wfShellExecWithStderr().
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 416 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 [ 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 BitmapHandler.
Referenced by doTransform().
|
protected |
Get the source file for the transform.
File | $file | |
array | $params |
Definition at line 311 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 625 of file TransformationalImageHandler.php.
References $params.
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 MediaHandler.
Reimplemented in BmpHandler, Jpeg2000Handler, TiffHandler, WebPHandler, and XCFHandler.
Definition at line 610 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. |
Reimplemented from ImageHandler.
Reimplemented in BitmapHandler, BitmapHandler_ClientOnly, and JpegHandler.
Definition at line 51 of file TransformationalImageHandler.php.
References $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 |
Reimplemented in BitmapHandler, and JpegHandler.
Definition at line 597 of file TransformationalImageHandler.php.
|
protected |
Transform an image using a custom command.
This is a stub method. The real method is in BitmapHandler.
Reimplemented in BitmapHandler.
Definition at line 405 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 BitmapHandler.
Reimplemented in BitmapHandler.
Definition at line 431 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 BitmapHandler.
Reimplemented in BitmapHandler, and JpegHandler.
Definition at line 375 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 BitmapHandler.
Reimplemented in BitmapHandler.
Definition at line 390 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().