MediaWiki  master
JpegHandler Class Reference

JPEG specific handler. More...

Inheritance diagram for JpegHandler:
Collaboration diagram for JpegHandler:

Public Member Functions

 getMetadata ( $image, $filename)
 Get handler-specific metadata which will be saved in the img_metadata field. More...
 
 makeParamString ( $params)
 Merge a parameter array into a string appropriate for inclusion in filenames.
Parameters
array$paramsArray of parameters that have been through normaliseParams.
Returns
string
Stable for overriding Stable for overriding Stable for overriding More...
 
 normaliseParams ( $image, &$params)
 
 parseParamString ( $str)
 Parse a param string made with makeParamString back into an array.
Parameters
string$strThe parameter string without file name (e.g. 122px)
Returns
array|bool Array of parameters or false on failure.
Stable for overriding Stable for overriding Stable for overriding More...
 
 rotate ( $file, $params)
 
 sanitizeParamsForBucketing ( $params)
 Returns a normalised params array for which parameters have been cleaned up for bucketing purposes Stable for overriding.
Parameters
array$params
Returns
array
Stable for overriding Stable for overriding More...
 
 supportsBucketing ()
 Returns whether or not this handler supports the chained generation of thumbnails according to buckets Stable for overriding. More...
 
 swapICCProfile ( $filepath, array $colorSpaces, array $oldProfileStrings, $profileFilepath)
 Swaps an embedded ICC profile for another, if found. More...
 
 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.
Parameters
string$name
mixed$value
Stable for overriding Stable for overriding Stable for overriding More...
 
- Public Member Functions inherited from ExifBitmapHandler
 convertMetadataVersion ( $metadata, $version=1)
 Convert metadata version. More...
 
 formatMetadata ( $image, $context=false)
 
 getCommonMetaArray (File $file)
 Get an array of standard (FormatMetadata type) metadata values. More...
 
 getImageSize ( $image, $path)
 Wrapper for base classes ImageHandler::getImageSize() that checks for rotation reported from metadata and swaps the sizes to match. More...
 
 getMetadataType ( $image)
 Get a string describing the type of metadata, for display purposes. 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...
 
 isMetadataValid ( $image, $metadata)
 
- Public Member Functions inherited from BitmapHandler
 autoRotateEnabled ()
 
 canRotate ()
 Returns whether the current scaler supports rotation (im and gd do) More...
 
- Public Member Functions inherited from TransformationalImageHandler
 doTransform ( $image, $dstPath, $dstUrl, $params, $flags=0)
 Create a thumbnail. 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...
 
- Public Member Functions inherited from ImageHandler
 canRender ( $file)
 True if the handled types can be transformed.Stable for overriding
Parameters
File$file
Returns
bool
Stable for overriding More...
 
 getDimensionsString ( $file)
 Shown in file history box on image description page.Stable for overriding
Parameters
File$file
Returns
string Dimensions
Stable for overriding More...
 
 getImageArea ( $image)
 Function that returns the number of pixels to be thumbnailed. More...
 
 getLongDesc ( $file)
 Long description.Shown under image on image description page surounded by ().Stable for overriding
Parameters
File$file
Returns
string
Stable for overriding More...
 
 getParamMap ()
 Get an associative array mapping magic word IDs to parameter names.Will be used by the parser to identify parameters. Stable for overriding More...
 
 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().Stable for overriding
Parameters
File$image
string$script
array$params
Returns
bool|ThumbnailImage
Stable for overriding More...
 
 getShortDesc ( $file)
 Short description.Shown on Special:Search results.Stable for overriding
Parameters
File$file
Returns
string
Stable for overriding More...
 
- Public Member Functions inherited from MediaHandler
 canAnimateThumbnail ( $file)
 If the material is animated, we can animate the thumbnail. More...
 
 filterThumbnailPurgeList (&$files, $options)
 Remove files from the purge list. More...
 
 getAvailableLanguages (File $file)
 Get list of languages file can be viewed in. More...
 
 getContentHeaders ( $metadata)
 Get useful response headers for GET/HEAD requests for a file with the given metadata Stable for overriding. More...
 
 getDefaultRenderLanguage (File $file)
 On file types that support renderings in multiple languages, which language is used by default if unspecified. More...
 
 getEntireText (File $file)
 Get the text of the entire document. More...
 
 getLength ( $file)
 If its an audio file, return the length of the file. More...
 
 getMatchedLanguage ( $userPreferredLanguage, array $availableLanguages)
 When overridden in a descendant class, returns a language code most suiting. 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...
 
 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 Stable for overriding. More...
 
 isExpensiveToThumbnail ( $file)
 True if creating thumbnails from the file is large or otherwise resource-intensive. More...
 
 isMultiPage ( $file)
 True if the type has multi-page capabilities. More...
 
 isVectorized ( $file)
 The material is vectorized and thus scaling is lossless. More...
 
 pageCount (File $file)
 Page count for a multi-page document, false if unsupported or unknown. More...
 
 parserTransformHook ( $parser, $file)
 Modify the parser object post-transform. More...
 
 removeBadFile ( $dstPath, $retval=0)
 Check for zero-sized thumbnails. More...
 
 verifyUpload ( $fileName)
 File validation hook called on upload. More...
 

Protected Member Functions

 getScriptParams ( $params)
 Stable for overriding Stable for overriding More...
 
 transformImageMagick ( $image, $params)
 Transform an image using ImageMagick.
Parameters
File$imageFile associated with this thumbnail
array$paramsArray with scaler params
Returns
MediaTransformError|false Error object if error occurred, false (=no error) otherwise
More...
 
- Protected Member Functions inherited from ExifBitmapHandler
 getRotationForExif ( $data)
 Given a chunk of serialized Exif metadata, return the orientation as degrees of rotation. More...
 
- Protected Member Functions inherited from BitmapHandler
 getScalerType ( $dstPath, $checkDstPath=true)
 Returns which scaler type should be used. More...
 
 imageMagickSubsampling ( $pixelFormat)
 Get ImageMagick subsampling factors for the target JPEG pixel format. 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...
 
 transformImageMagickExt ( $image, $params)
 Transform an image using the Imagick PHP extension. More...
 
- Protected Member Functions inherited from TransformationalImageHandler
 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...
 
 escapeMagickPath ( $path, $scene=false)
 Armour a string against ImageMagick's GetPathComponent(). More...
 
 escapeMagickProperty ( $s)
 Escape a string for ImageMagick's property input (e.g. 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...
 
 getThumbnailSource ( $file, $params)
 Get the source file for the transform. More...
 
- Protected Member Functions inherited from MediaHandler
 formatMetadataHelper ( $metadataArray, $context=false)
 sorts the visible/invisible field. More...
 
 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...
 

Static Private Member Functions

static validateQuality ( $value)
 Validate and normalize quality value to be between 1 and 100 (inclusive). More...
 

Private Attributes

const SRGB_EXIF_COLOR_SPACE = 'sRGB'
 
const SRGB_ICC_PROFILE_DESCRIPTION = 'sRGB IEC61966-2.1'
 

Additional Inherited Members

- Static Public Member Functions inherited from BitmapHandler
static imageJpegWrapper ( $dst_image, $thumbPath, $quality=null)
 Callback for transformGd when transforming jpeg images. More...
 
- 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 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. More...
 
- Public Attributes inherited from ExifBitmapHandler
const BROKEN_FILE = '-1'
 Error extracting metadata. More...
 
const OLD_BROKEN_FILE = '0'
 Outdated error extracting metadata. More...
 
- 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. More...
 

Detailed Description

JPEG specific handler.

Inherits most stuff from BitmapHandler, just here to do the metadata handler differently.

Metadata stuff common to Jpeg and built-in Tiff (not PagedTiffHandler) is in ExifBitmapHandler.

Definition at line 35 of file JpegHandler.php.

Member Function Documentation

◆ getMetadata()

JpegHandler::getMetadata (   $image,
  $path 
)

Get handler-specific metadata which will be saved in the img_metadata field.

Stable for overriding

Parameters
File | FSFile$imageThe image object, or false if there isn't one. Warning, FSFile::getPropsFromPath might pass an FSFile instead of File (!)
string$pathThe filename
Returns
string A string of metadata in php serialized form (Run through serialize())

Reimplemented from MediaHandler.

Definition at line 103 of file JpegHandler.php.

References ExifBitmapHandler\BROKEN_FILE, BitmapMetadataHandler\Jpeg(), serialize(), Exif\version(), and wfDebug().

◆ getScriptParams()

JpegHandler::getScriptParams (   $params)
protected

Stable for overriding Stable for overriding

Reimplemented from ImageHandler.

Definition at line 95 of file JpegHandler.php.

References $res.

◆ makeParamString()

JpegHandler::makeParamString (   $params)

Merge a parameter array into a string appropriate for inclusion in filenames.

Parameters
array$paramsArray of parameters that have been through normaliseParams.
Returns
string
Stable for overriding Stable for overriding Stable for overriding

Reimplemented from BitmapHandler.

Definition at line 65 of file JpegHandler.php.

References $res.

◆ normaliseParams()

JpegHandler::normaliseParams (   $image,
$params 
)
Parameters
File$image
array&$params
Returns
bool

Reimplemented from BitmapHandler.

Definition at line 39 of file JpegHandler.php.

◆ parseParamString()

JpegHandler::parseParamString (   $str)

Parse a param string made with makeParamString back into an array.

Parameters
string$strThe parameter string without file name (e.g. 122px)
Returns
array|bool Array of parameters or false on failure.
Stable for overriding Stable for overriding Stable for overriding

Reimplemented from BitmapHandler.

Definition at line 74 of file JpegHandler.php.

References $res.

◆ rotate()

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

Reimplemented from BitmapHandler.

Definition at line 139 of file JpegHandler.php.

References $command, $file, $wgJpegTran, ExifBitmapHandler\getRotation(), and MediaHandler\logErrorForExternalProcess().

◆ sanitizeParamsForBucketing()

JpegHandler::sanitizeParamsForBucketing (   $params)

Returns a normalised params array for which parameters have been cleaned up for bucketing purposes Stable for overriding.

Parameters
array$params
Returns
array
Stable for overriding Stable for overriding

Reimplemented from ImageHandler.

Definition at line 174 of file JpegHandler.php.

◆ supportsBucketing()

JpegHandler::supportsBucketing ( )

Returns whether or not this handler supports the chained generation of thumbnails according to buckets Stable for overriding.

Returns
bool
Since
1.24

Reimplemented from MediaHandler.

Definition at line 170 of file JpegHandler.php.

◆ swapICCProfile()

JpegHandler::swapICCProfile (   $filepath,
array  $colorSpaces,
array  $oldProfileStrings,
  $profileFilepath 
)

Swaps an embedded ICC profile for another, if found.

Depends on exiftool, no-op if not installed.

Parameters
string$filepathFile to be manipulated (will be overwritten)
array$colorSpacesOnly process files with this/these Color Space(s)
array$oldProfileStringsExact name(s) of color profile to look for (the one that will be replaced)
string$profileFilepathICC profile file to apply to the file
Since
1.26
Returns
bool

Definition at line 242 of file JpegHandler.php.

References $command, $wgExiftool, and MediaHandler\logErrorForExternalProcess().

Referenced by transformImageMagick().

◆ transformImageMagick()

JpegHandler::transformImageMagick (   $image,
  $params 
)
protected

Transform an image using ImageMagick.

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

Reimplemented from BitmapHandler.

Definition at line 188 of file JpegHandler.php.

References $wgUseTinyRGBForJPGThumbnails, SRGB_EXIF_COLOR_SPACE, SRGB_ICC_PROFILE_DESCRIPTION, and swapICCProfile().

◆ validateParam()

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

Parameters
string$name
mixed$value
Stable for overriding Stable for overriding Stable for overriding

Reimplemented from BitmapHandler.

Definition at line 49 of file JpegHandler.php.

References validateQuality().

◆ validateQuality()

static JpegHandler::validateQuality (   $value)
staticprivate

Validate and normalize quality value to be between 1 and 100 (inclusive).

Parameters
int$valueQuality value, will be converted to integer or 0 if invalid
Returns
bool True if the value is valid

Definition at line 61 of file JpegHandler.php.

Referenced by validateParam().

Member Data Documentation

◆ SRGB_EXIF_COLOR_SPACE

const JpegHandler::SRGB_EXIF_COLOR_SPACE = 'sRGB'
private

Definition at line 36 of file JpegHandler.php.

Referenced by transformImageMagick().

◆ SRGB_ICC_PROFILE_DESCRIPTION

const JpegHandler::SRGB_ICC_PROFILE_DESCRIPTION = 'sRGB IEC61966-2.1'
private

Definition at line 37 of file JpegHandler.php.

Referenced by transformImageMagick().


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