MediaWiki  REL1_22
BitmapHandler Class Reference

Generic handler for bitmap images. More...

Inheritance diagram for BitmapHandler:
Collaboration diagram for BitmapHandler:

List of all members.

Public Member Functions

 doTransform ($image, $dstPath, $dstUrl, $params, $flags=0)
 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'.
 mustRender ($file)
 Rerurns whether the file needs to be rendered.
 normaliseParams ($image, &$params)
 rotate ($file, $params)

Static Public Member Functions

static canRotate ()
 Returns whether the current scaler supports rotation (im and gd do)
static imageJpegWrapper ($dst_image, $thumbPath)

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.
 logErrorForExternalProcess ($retval, $err, $cmd)
 Log an error that occurred in an external process.
 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.

Static Protected Member Functions

static getScalerType ($dstPath, $checkDstPath=true)
 Returns which scaler type should be used.

Detailed Description

Generic handler for bitmap images.

Definition at line 29 of file Bitmap.php.


Member Function Documentation

static BitmapHandler::canRotate ( ) [static]

Returns whether the current scaler supports rotation (im and gd do)

Returns:
bool

Reimplemented from MediaHandler.

Definition at line 712 of file Bitmap.php.

References getScalerType().

Referenced by ResourceLoaderStartUpModule\getConfig(), mustRender(), ExifRotationTest\testMetadata(), and ExifRotationTest\testRotationRendering().

BitmapHandler::doTransform ( image,
dstPath,
dstUrl,
params,
flags = 0 
)
Parameters:
$imageFile
$dstPath
$dstUrl
$params
int$flags
Returns:
MediaTransformError|ThumbnailImage|TransformParameterError

Reimplemented from MediaHandler.

Reimplemented in BitmapHandler_ClientOnly, and MockBitmapHandler.

Definition at line 110 of file Bitmap.php.

References $flags, $params, array(), as, getClientScalingThumbnailImage(), getScalerType(), normaliseParams(), of, on, page, MediaHandler\removeBadFile(), transformCustom(), transformGd(), transformImageMagick(), transformImageMagickExt(), wfDebug(), wfMkdirParents(), wfRunHooks(), and will.

BitmapHandler::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.

Parameters:
string$pathThe file path
bool | string$sceneThe scene specification, or false if there is none
Exceptions:
MWException
Returns:
string

Definition at line 618 of file Bitmap.php.

References $path, and escapeMagickPath().

Referenced by rotate(), and transformImageMagick().

BitmapHandler::escapeMagickOutput ( path,
scene = false 
)

Escape a string for ImageMagick's output filename.

See InterpretImageFilename() in magick/image.c.

Returns:
string

Definition at line 636 of file Bitmap.php.

References $path, and escapeMagickPath().

Referenced by rotate(), and transformImageMagick().

BitmapHandler::escapeMagickPath ( path,
scene = false 
) [protected]

Armour a string against ImageMagick's GetPathComponent().

This is a helper function for escapeMagickInput() and escapeMagickOutput().

Parameters:
string$pathThe file path
bool | string$sceneThe scene specification, or false if there is none
Exceptions:
MWException
Returns:
string

Definition at line 650 of file Bitmap.php.

References $path, and wfIsWindows().

Referenced by escapeMagickInput(), and escapeMagickOutput().

Escape a string for ImageMagick's property input (e.g.

-set -comment) See InterpretImageProperties() in magick/property.c

Returns:
mixed|string

Definition at line 589 of file Bitmap.php.

References $s.

Referenced by transformImageMagick().

BitmapHandler::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.

Parameters:
array$paramsParameters as returned by normaliseParams
int$rotationThe rotation angle that will be applied
Returns:
array ($width, $height) array

Definition at line 90 of file Bitmap.php.

References $params, and array().

Referenced by transformGd(), transformImageMagick(), and transformImageMagickExt().

BitmapHandler::getClientScalingThumbnailImage ( image,
scalerParams 
) [protected]

Get a ThumbnailImage that respresents an image that will be scaled client side.

Parameters:
$imageFile File associated with this thumbnail
array$scalerParamsArray with scaler params
Returns:
ThumbnailImage
Todo:
fixme: no rotation support

Definition at line 258 of file Bitmap.php.

References $params, and array().

Referenced by MockBitmapHandler\doClientImage(), and doTransform().

Retrieve the version of the installed ImageMagick You can use PHPs version_compare() to use this value Value is cached for one hour.

Returns:
String representing the IM version.

Definition at line 680 of file Bitmap.php.

References $cache, $matches, $retval, $wgMemc, global, wfDebug(), wfEscapeShellArg(), and wfShellExec().

Referenced by transformImageMagick().

BitmapHandler::getMediaTransformError ( params,
errMsg 
)

Get a MediaTransformError with error 'thumbnail_error'.

Parameters:
array$paramsParameter array as passed to the transform* functions
string$errMsgError message
Returns:
MediaTransformError

Definition at line 495 of file Bitmap.php.

References $params.

Referenced by transformCustom(), transformGd(), transformImageMagick(), and transformImageMagickExt().

static BitmapHandler::getScalerType ( dstPath,
checkDstPath = true 
) [static, protected]

Returns which scaler type should be used.

Creates parent directories for $dstPath and returns 'client' on error

Returns:
string client,im,custom,gd

Reimplemented in XCFHandler.

Definition at line 226 of file Bitmap.php.

References global.

Referenced by canRotate(), doTransform(), normaliseParams(), and rotate().

static BitmapHandler::imageJpegWrapper ( dst_image,
thumbPath 
) [static]

Definition at line 701 of file Bitmap.php.

BitmapHandler::logErrorForExternalProcess ( retval,
err,
cmd 
) [protected]

Log an error that occurred in an external process.

Parameters:
$retvalint
$errint
$cmdstring

Definition at line 483 of file Bitmap.php.

References $retval, wfDebugLog(), and wfHostname().

Referenced by JpegHandler\rotate(), rotate(), transformCustom(), and transformImageMagick().

Rerurns whether the file needs to be rendered.

Returns true if the file requires rotation and we are able to rotate it.

Parameters:
$fileFile
Returns:
bool

Reimplemented from MediaHandler.

Reimplemented in TiffHandler, XCFHandler, and BmpHandler.

Definition at line 787 of file Bitmap.php.

References $file, canRotate(), and MediaHandler\getRotation().

BitmapHandler::normaliseParams ( image,
&$  params 
)
Parameters:
$imageFile
array$paramsTransform 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.
Returns:
bool

Reimplemented from ImageHandler.

Reimplemented in BitmapHandler_ClientOnly.

Definition at line 37 of file Bitmap.php.

References $params, array(), getScalerType(), global, and wfRunHooks().

Referenced by doTransform(), and BitmapScalingTest\testNormaliseParams().

BitmapHandler::rotate ( file,
params 
)
Parameters:
$fileFile
array$paramsRotate parameters. 'rotation' clockwise rotation in degrees, allowed are multiples of 90
Since:
1.21
Returns:
bool

Reimplemented in JpegHandler.

Definition at line 738 of file Bitmap.php.

References $file, $params, $result, $retval, escapeMagickInput(), escapeMagickOutput(), MediaHandler\getRotation(), getScalerType(), global, logErrorForExternalProcess(), wfDebug(), wfEscapeShellArg(), wfProfileIn(), wfProfileOut(), and wfShellExecWithStderr().

BitmapHandler::transformCustom ( image,
params 
) [protected]

Transform an image using a custom command.

Parameters:
$imageFile File associated with this thumbnail
array$paramsArray with scaler params
Returns:
MediaTransformError Error object if error occurred, false (=no error) otherwise

Definition at line 452 of file Bitmap.php.

References $params, $retval, getMediaTransformError(), global, logErrorForExternalProcess(), wfDebug(), wfEscapeShellArg(), wfProfileIn(), wfProfileOut(), and wfShellExecWithStderr().

Referenced by doTransform().

BitmapHandler::transformGd ( image,
params 
) [protected]

Transform an image using the built in GD library.

Parameters:
$imageFile File associated with this thumbnail
array$paramsArray with scaler params
Returns:
MediaTransformError Error object if error occurred, false (=no error) otherwise

Definition at line 508 of file Bitmap.php.

References $params, array(), extractPreRotationDimensions(), getMediaTransformError(), MediaHandler\getRotation(), list, wfDebug(), and wfMessage().

Referenced by doTransform().

BitmapHandler::transformImageMagick ( image,
params 
) [protected]

Transform an image using ImageMagick.

Parameters:
$imageFile File associated with this thumbnail
array$paramsArray with scaler params
Returns:
MediaTransformError Error object if error occurred, false (=no error) otherwise

Definition at line 274 of file Bitmap.php.

References $params, $retval, array(), escapeMagickInput(), escapeMagickOutput(), escapeMagickProperty(), extractPreRotationDimensions(), ImageHandler\getImageArea(), getMagickVersion(), getMediaTransformError(), MediaHandler\getRotation(), global, MediaHandler\isAnimatedImage(), list, logErrorForExternalProcess(), wfDebug(), wfProfileIn(), wfProfileOut(), and wfShellExecWithStderr().

Referenced by doTransform().

BitmapHandler::transformImageMagickExt ( image,
params 
) [protected]

Transform an image using the Imagick PHP extension.

Parameters:
$imageFile File associated with this thumbnail
array$paramsArray with scaler params
Returns:
MediaTransformError Error object if error occurred, false (=no error) otherwise

Definition at line 375 of file Bitmap.php.

References $params, $result, as, extractPreRotationDimensions(), ImageHandler\getImageArea(), getMediaTransformError(), MediaHandler\getRotation(), global, MediaHandler\isAnimatedImage(), list, and wfDebug().

Referenced by doTransform().


The documentation for this class was generated from the following file: