MediaWiki REL1_35
ExifBitmapHandler Class Reference

Stuff specific to JPEG and (built-in) TIFF handler. More...

Inheritance diagram for ExifBitmapHandler:
Collaboration diagram for ExifBitmapHandler:

Public Member Functions

 convertMetadataVersion ( $metadata, $version=1)
 Convert metadata version.
 
 formatMetadata ( $image, $context=false)
 
 getCommonMetaArray (File $file)
 Get an array of standard (FormatMetadata type) metadata values.
 
 getImageSize ( $image, $path)
 Wrapper for base classes ImageHandler::getImageSize() that checks for rotation reported from metadata and swaps the sizes to match.
 
 getMetadataType ( $image)
 Get a string describing the type of metadata, for display purposes.
 
 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.
 
 isMetadataValid ( $image, $metadata)
 
- Public Member Functions inherited from BitmapHandler
 autoRotateEnabled ()
 
 canRotate ()
 Returns whether the current scaler supports rotation (im and gd do) Stable to override.
 
 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 to override Stable to override
 
 normaliseParams ( $image, &$params)
 Stable to override.
 
 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 to override Stable to override
 
 rotate ( $file, $params)
 Stable to override.
 
 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 to override Stable to override
 
- Public Member Functions inherited from TransformationalImageHandler
 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.
 
- Public Member Functions inherited from ImageHandler
 canRender ( $file)
 True if the handled types can be transformed.Stable to override
Parameters
File$file
Returns
bool
Stable to override
 
 getDimensionsString ( $file)
 Shown in file history box on image description page.Stable to override
Parameters
File$file
Returns
string Dimensions
Stable to override
 
 getImageArea ( $image)
 Function that returns the number of pixels to be thumbnailed.
 
 getLongDesc ( $file)
 Long description.Shown under image on image description page surounded by ().Stable to override
Parameters
File$file
Returns
string
Stable to override
 
 getParamMap ()
 Get an associative array mapping magic word IDs to parameter names.Will be used by the parser to identify parameters. Stable to override
 
 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 to override
Parameters
File$image
string$script
array$params
Returns
bool|ThumbnailImage
Stable to override
 
 getShortDesc ( $file)
 Short description.Shown on Special:Search results.Stable to override
Parameters
File$file
Returns
string
Stable to override
 
 sanitizeParamsForBucketing ( $params)
 Returns a normalised params array for which parameters have been cleaned up for bucketing purposes Stable to override.
Parameters
array$params
Returns
array
Stable to override
 
- Public Member Functions inherited from MediaHandler
 canAnimateThumbnail ( $file)
 If the material is animated, we can animate the thumbnail.
 
 filterThumbnailPurgeList (&$files, $options)
 Remove files from the purge list.
 
 getAvailableLanguages (File $file)
 Get list of languages file can be viewed in.
 
 getContentHeaders ( $metadata)
 Get useful response headers for GET/HEAD requests for a file with the given metadata Stable to override.
 
 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.
 
 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.
 
 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 Stable to override.
 
 isExpensiveToThumbnail ( $file)
 True if creating thumbnails from the file is large or otherwise resource-intensive.
 
 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 Stable to override.
 
 verifyUpload ( $fileName)
 File validation hook called on upload.
 

Public Attributes

const BROKEN_FILE = '-1'
 Error extracting metadata.
 
const OLD_BROKEN_FILE = '0'
 Outdated error extracting metadata.
 
- Public Attributes inherited from MediaHandler
const METADATA_BAD = false
 
const METADATA_COMPATIBLE = 2
 
const METADATA_GOOD = true
 
const TRANSFORM_LATER = 1
 

Protected Member Functions

 getRotationForExif ( $data)
 Given a chunk of serialized Exif metadata, return the orientation as degrees of rotation.
 
- Protected Member Functions inherited from BitmapHandler
 getScalerType ( $dstPath, $checkDstPath=true)
 Returns which scaler type should be used.
 
 imageMagickSubsampling ( $pixelFormat)
 Get ImageMagick subsampling factors for the target JPEG pixel format.
 
 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 Stable to override.
 
 transformImageMagickExt ( $image, $params)
 Transform an image using the Imagick PHP extension.
 
- Protected Member Functions inherited from TransformationalImageHandler
 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.
 
 getThumbnailSource ( $file, $params)
 Get the source file for the transform.
 
- Protected Member Functions inherited from ImageHandler
 getScriptParams ( $params)
 Stable to override
 
- Protected Member Functions inherited from MediaHandler
 formatMetadataHelper ( $metadataArray, $context=false)
 sorts the visible/invisible field.
 
 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 BitmapHandler
static imageJpegWrapper ( $dst_image, $thumbPath, $quality=null)
 Callback for transformGd when transforming jpeg images.
 
- 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.
 
- 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.
 

Detailed Description

Stuff specific to JPEG and (built-in) TIFF handler.

All metadata related, since both JPEG and TIFF support Exif.

Stable to extend

Definition at line 31 of file ExifBitmapHandler.php.

Member Function Documentation

◆ convertMetadataVersion()

ExifBitmapHandler::convertMetadataVersion (   $metadata,
  $version = 1 
)

Convert metadata version.

By default just returns $metadata, but can be used to allow media handlers to convert between metadata versions. Stable to override

Parameters
string | array$metadataMetadata array (serialized if string)
int$versionTarget version
Returns
array Serialized metadata in specified version, or $metadata on fail.

Reimplemented from MediaHandler.

Definition at line 38 of file ExifBitmapHandler.php.

References FormatMetadata\collapseContactInfo(), and unserialize().

◆ formatMetadata()

ExifBitmapHandler::formatMetadata (   $image,
  $context = false 
)
Parameters
File$image
bool | IContextSource$contextContext to use (optional)
Returns
array|bool

Reimplemented from MediaHandler.

Definition at line 134 of file ExifBitmapHandler.php.

References MediaHandler\formatMetadataHelper(), and getCommonMetaArray().

◆ getCommonMetaArray()

ExifBitmapHandler::getCommonMetaArray ( File  $file)

Get an array of standard (FormatMetadata type) metadata values.

The returned data is largely the same as that from getMetadata(), but formatted in a standard, stable, handler-independent way. The idea being that some values like ImageDescription or Artist are universal and should be retrievable in a handler generic way.

The specific properties are the type of properties that can be handled by the FormatMetadata class. These values are exposed to the user via the filemetadata parser function.

Details of the response format of this function can be found at https://www.mediawiki.org/wiki/Manual:File_metadata_handling tl/dr: the response is an associative array of properties keyed by name, but the value can be complex. You probably want to call one of the FormatMetadata::flatten* functions on the property values before using them, or call FormatMetadata::getFormattedData() on the full response array, which transforms all values into prettified, human-readable text.

Subclasses overriding this function must return a value which is a valid API response fragment (all associative array keys are valid XML tagnames).

Note, if the file simply has no metadata, but the handler supports this interface, it should return an empty array, not false.

Stable to override

Parameters
File$file
Returns
array|bool False if interface not supported
Since
1.23

Reimplemented from MediaHandler.

Definition at line 143 of file ExifBitmapHandler.php.

References $file, isMetadataValid(), and unserialize().

Referenced by formatMetadata().

◆ getImageSize()

ExifBitmapHandler::getImageSize (   $image,
  $path 
)

Wrapper for base classes ImageHandler::getImageSize() that checks for rotation reported from metadata and swaps the sizes to match.

Parameters
File | FSFile$image
string$path
Returns
array|false

Reimplemented from ImageHandler.

Definition at line 175 of file ExifBitmapHandler.php.

References $path, BitmapHandler\autoRotateEnabled(), MediaHandler\getMetadata(), and getRotationForExif().

◆ getMetadataType()

ExifBitmapHandler::getMetadataType (   $image)

Get a string describing the type of metadata, for display purposes.

Stable to override

Note
This method is currently unused.
Parameters
File$image
Returns
string

Reimplemented from MediaHandler.

Definition at line 163 of file ExifBitmapHandler.php.

◆ getRotation()

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

This information is only useful when manipulating the original file; the width and height we normally work with is logical, and will match any produced output views.

Parameters
File$file
Returns
int 0, 90, 180 or 270

Reimplemented from MediaHandler.

Definition at line 208 of file ExifBitmapHandler.php.

References $file, BitmapHandler\autoRotateEnabled(), and getRotationForExif().

Referenced by JpegHandler\rotate().

◆ getRotationForExif()

ExifBitmapHandler::getRotationForExif (   $data)
protected

Given a chunk of serialized Exif metadata, return the orientation as degrees of rotation.

Parameters
string$data
Returns
int 0, 90, 180 or 270
Todo:
FIXME: Orientation can include flipping as well; see if this is an issue!

Definition at line 226 of file ExifBitmapHandler.php.

References unserialize().

Referenced by getImageSize(), and getRotation().

◆ isMetadataValid()

ExifBitmapHandler::isMetadataValid (   $image,
  $metadata 
)
Parameters
File$image
string$metadata
Returns
bool|int

Reimplemented from MediaHandler.

Definition at line 90 of file ExifBitmapHandler.php.

References $wgShowEXIF, MediaHandler\METADATA_BAD, MediaHandler\METADATA_COMPATIBLE, MediaHandler\METADATA_GOOD, unserialize(), Exif\version(), and wfDebug().

Referenced by getCommonMetaArray().

Member Data Documentation

◆ BROKEN_FILE

const ExifBitmapHandler::BROKEN_FILE = '-1'

Error extracting metadata.

Definition at line 33 of file ExifBitmapHandler.php.

Referenced by JpegHandler\getMetadata(), and TiffHandler\getMetadata().

◆ OLD_BROKEN_FILE

const ExifBitmapHandler::OLD_BROKEN_FILE = '0'

Outdated error extracting metadata.

Definition at line 36 of file ExifBitmapHandler.php.


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