MediaWiki REL1_32
|
Handler for images that need to be transformed. More...
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. | |
escapeMagickInput ( $path, $scene=false) | |
Escape a string for ImageMagick's input filenames. | |
escapeMagickOutput ( $path, $scene=false) | |
Escape a string for ImageMagick's output filename. | |
escapeMagickProperty ( $s) | |
Escape a string for ImageMagick's property input (e.g. | |
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) | |
getDimensionsString ( $file) | |
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) | |
getParamMap () | |
Get an associative array mapping magic word IDs to parameter names. | |
getScriptedTransform ( $image, $script, $params) | |
getScriptParams ( $params) | |
getShortDesc ( $file) | |
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. | |
validateThumbParams (&$width, &$height, $srcWidth, $srcHeight, $mimeType) | |
Validate thumbnail parameters and fill in the correct height. | |
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: | |
formatMetadataHelper ( $metadataArray, $context=false) | |
sorts the visible/invisible field. | |
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 its 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. | |
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. | |
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. | |
verifyUpload ( $fileName) | |
File validation hook called on upload. | |
Protected Member Functions | |
escapeMagickPath ( $path, $scene=false) | |
Armour a string against ImageMagick's GetPathComponent(). | |
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 MediaHandler | |
logErrorForExternalProcess ( $retval, $err, $cmd) | |
Log an error that occurred in an external process. | |
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 | MAX_ERR_LOG_SIZE = 65535 |
Max length of error logged by logErrorForExternalProcess() | |
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 36 of file TransformationalImageHandler.php.
TransformationalImageHandler::autoRotateEnabled | ( | ) |
Should we automatically rotate an image based on exif.
Reimplemented in BitmapHandler.
Definition at line 554 of file TransformationalImageHandler.php.
TransformationalImageHandler::canRotate | ( | ) |
Returns whether the current scaler supports rotation.
Reimplemented from MediaHandler.
Reimplemented in BitmapHandler.
Definition at line 543 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, and MockBitmapHandler.
Definition at line 106 of file TransformationalImageHandler.php.
References $image, $params, $wgMaxImageArea, getClientScalingThumbnailImage(), getScalerType(), getThumbnailSource(), normaliseParams(), MediaHandler\removeBadFile(), 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 80 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, function, use, wfDebug(), wfEscapeShellArg(), and wfShellExecWithStderr().
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 [ 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 |
Reimplemented in BitmapHandler, WebPHandler, and XCFHandler.
Referenced by doTransform().
|
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 595 of file TransformationalImageHandler.php.
References $params, and $wgMaxImageArea.
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, TiffHandler, WebPHandler, and XCFHandler.
Definition at line 581 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 44 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 |
Reimplemented in BitmapHandler, and JpegHandler.
Definition at line 569 of file TransformationalImageHandler.php.
|
protected |
Transform an image using a custom command.
This is a stub method. The real method is in BitmapHander.
Reimplemented in BitmapHandler.
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.
Reimplemented in BitmapHandler.
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.
Reimplemented in BitmapHandler, and JpegHandler.
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.
Reimplemented in BitmapHandler.
Definition at line 365 of file TransformationalImageHandler.php.
References $params, and getMediaTransformError().
Referenced by doTransform().