MediaWiki  REL1_19
BitmapMetadataHandler Class Reference

Class to deal with reconciling and extracting metadata from bitmap images. More...

List of all members.

Public Member Functions

 addMetadata ($metaArray, $type= 'other')
 Add misc metadata.
 getExif ($filename, $byteOrder)
 Get exif info using exif class.
 getMetadataArray ()
 Merge together the various types of metadata the different types have different priorites, and are merged in order.

Static Public Member Functions

static getTiffByteOrder ($filename)
 Read the first 2 bytes of a tiff file to figure out Little Endian or Big Endian.
static GIF ($filename)
 function for gif images.
static Jpeg ($filename)
 Main entry point for jpeg's.
static PNG ($filename)
 Entry point for png At some point in the future this might merge the png various tEXt chunks to that are interesting, but for now it only does XMP.
static Tiff ($filename)
 This doesn't do much yet, but eventually I plan to add XMP support for Tiff.

Private Member Functions

 doApp13 ($app13)
 This does the photoshop image resource app13 block of interest, IPTC-IIM metadata is stored here.

Private Attributes

 $iptcType = 'iptc-no-hash'
 $metadata = array()
 $metaPriority

Detailed Description

Class to deal with reconciling and extracting metadata from bitmap images.

This is meant to comply with http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf

This sort of acts as an intermediary between MediaHandler::getMetadata and the various metadata extractors.

Todo:
other image formats.

Definition at line 11 of file BitmapMetadataHandler.php.


Member Function Documentation

BitmapMetadataHandler::addMetadata ( metaArray,
type = 'other' 
)

Add misc metadata.

Warning: atm if the metadata category doesn't have a priority, it will be silently discarded.

Parameters:
Array$metaArrayarray of metadata values
string$typetype. defaults to other. if two things have the same type they're merged

Definition at line 76 of file BitmapMetadataHandler.php.

Referenced by doApp13(), and getExif().

Here is the caller graph for this function:

BitmapMetadataHandler::doApp13 ( app13) [private]

This does the photoshop image resource app13 block of interest, IPTC-IIM metadata is stored here.

Mostly just calls doPSIR and doIPTC

Parameters:
String$app13String containing app13 block from jpeg file

Definition at line 34 of file BitmapMetadataHandler.php.

References addMetadata(), JpegMetadataExtractor\doPSIR(), IPTC\parse(), and wfDebug().

Here is the call graph for this function:

BitmapMetadataHandler::getExif ( filename,
byteOrder 
)

Get exif info using exif class.

Basically what used to be in BitmapHandler::getMetadata(). Just calls stuff in the Exif class.

Parameters are passed to the Exif class.

Parameters:
$filenamestring
$byteOrderstring

Definition at line 60 of file BitmapMetadataHandler.php.

References $wgShowEXIF, and addMetadata().

Here is the call graph for this function:

Merge together the various types of metadata the different types have different priorites, and are merged in order.

This function is generally called by the media handlers' getMetadata()

Returns:
Array metadata array

Definition at line 94 of file BitmapMetadataHandler.php.

static BitmapMetadataHandler::getTiffByteOrder ( filename) [static]

Read the first 2 bytes of a tiff file to figure out Little Endian or Big Endian.

Needed for exif stuff.

Parameters:
$filenameString The filename
Returns:
String 'BE' or 'LE' or false

Definition at line 264 of file BitmapMetadataHandler.php.

Referenced by Tiff().

Here is the caller graph for this function:

static BitmapMetadataHandler::GIF ( filename) [static]

function for gif images.

They don't really have native metadata, so just merges together XMP and image comment.

Parameters:
$filenamefull path to file
Returns:
Array metadata array

Definition at line 199 of file BitmapMetadataHandler.php.

References GIFMetadataExtractor\getMetadata(), and GIFMetadataExtractor\VERSION.

Referenced by GIFHandler\getMetadata().

Here is the call graph for this function:

Here is the caller graph for this function:

static BitmapMetadataHandler::Jpeg ( filename) [static]

Main entry point for jpeg's.

Parameters:
$filenamestring filename (with full path)
Returns:
metadata result array.
Exceptions:
MWExceptionon invalid file.

Definition at line 128 of file BitmapMetadataHandler.php.

References $res, and JpegMetadataExtractor\segmentSplitter().

Referenced by JpegHandler\getMetadata(), BitmapMetadataHandlerTest\testBadIPTC(), BitmapMetadataHandlerTest\testIPTCDates(), BitmapMetadataHandlerTest\testIPTCDatesInvalid(), BitmapMetadataHandlerTest\testJpegComment(), and BitmapMetadataHandlerTest\testMultilingualCascade().

Here is the call graph for this function:

Here is the caller graph for this function:

static BitmapMetadataHandler::PNG ( filename) [static]

Entry point for png At some point in the future this might merge the png various tEXt chunks to that are interesting, but for now it only does XMP.

Parameters:
$filenameString full path to file
Returns:
Array Array for storage in img_metadata.

Definition at line 170 of file BitmapMetadataHandler.php.

References PNGMetadataExtractor\getMetadata(), and PNGMetadataExtractor\VERSION.

Referenced by PNGHandler\getMetadata().

Here is the call graph for this function:

Here is the caller graph for this function:

static BitmapMetadataHandler::Tiff ( filename) [static]

This doesn't do much yet, but eventually I plan to add XMP support for Tiff.

(PHP's exif support already extracts but needs some further processing because PHP's exif support is stupid...)

Todo:
Add XMP support, so this function actually makes sense to put here.

The various exceptions this throws are caught later.

Parameters:
$filenameString
Returns:
Array The metadata.

Definition at line 239 of file BitmapMetadataHandler.php.

References getTiffByteOrder(), and Exif\version().

Referenced by TiffHandler\getMetadata().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

BitmapMetadataHandler::$iptcType = 'iptc-no-hash' [private]

Definition at line 24 of file BitmapMetadataHandler.php.

BitmapMetadataHandler::$metadata = array() [private]

Definition at line 13 of file BitmapMetadataHandler.php.

BitmapMetadataHandler::$metaPriority [private]
Initial value:
 array(
                20 => array( 'other' ),
                40 => array( 'native' ),
                60 => array( 'iptc-good-hash', 'iptc-no-hash' ),
                70 => array( 'xmp-deprecated' ),
                80 => array( 'xmp-general' ),
                90 => array( 'xmp-exif' ),
                100 => array( 'iptc-bad-hash' ),
                120 => array( 'exif' ),
        )

Definition at line 14 of file BitmapMetadataHandler.php.


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