Pdf/FileParser/Image/Png.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Pdf
- Subpackage
- FileParser
- Version
- $Id: Png.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Pdf_FileParser_Image_Png
Abstract base class for Image file parsers.
Provides a library of methods to quickly navigate and extract various data types (signed and unsigned integers, floating- and fixed-point numbers, strings, etc.) from the file.
File access is managed via a Zend_Pdf_FileParserDataSource object. This allows the same parser code to work with many different data sources: in-memory objects, filesystem files, etc.
- Parent(s)
- \Zend_Pdf_FileParser_Image < \Zend_Pdf_FileParser
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants

BYTE_ORDER_LITTLE_ENDIAN
= 0
Little-endian byte order (0x04 0x03 0x02 0x01).
Inherited from: \Zend_Pdf_FileParser::BYTE_ORDER_LITTLE_ENDIAN\Zend_Pdf_FileParser_Image::BYTE_ORDER_LITTLE_ENDIAN- Inherited_from
- \Zend_Pdf_FileParser::BYTE_ORDER_LITTLE_ENDIAN
- Inherited_from
- \Zend_Pdf_FileParser_Image::BYTE_ORDER_LITTLE_ENDIAN

BYTE_ORDER_BIG_ENDIAN
= 1
Big-endian byte order (0x01 0x02 0x03 0x04).
Inherited from: \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN\Zend_Pdf_FileParser_Image::BYTE_ORDER_BIG_ENDIAN- Inherited_from
- \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN
- Inherited_from
- \Zend_Pdf_FileParser_Image::BYTE_ORDER_BIG_ENDIAN
Properties


\Zend_Pdf_FileParserDataSource $_dataSource = null
Object representing the data source to be parsed.
Inherited from: \Zend_Pdf_FileParser::$$_dataSource\Zend_Pdf_FileParser_Image::$$_dataSourcenull
Details- Type
- \Zend_Pdf_FileParserDataSource
- Inherited_from
- \Zend_Pdf_FileParser::$$_dataSource
- Inherited_from
- \Zend_Pdf_FileParser_Image::$$_dataSource


boolean $_isParsed = false
Flag indicating that the file has been sucessfully parsed.
Inherited from: \Zend_Pdf_FileParser::$$_isParsed\Zend_Pdf_FileParser_Image::$$_isParsedfalse
Details- Type
- boolean
- Inherited_from
- \Zend_Pdf_FileParser::$$_isParsed
- Inherited_from
- \Zend_Pdf_FileParser_Image::$$_isParsed


boolean $_isScreened = false
Flag indicating that the file has passed a cursory validation check.
Inherited from: \Zend_Pdf_FileParser::$$_isScreened\Zend_Pdf_FileParser_Image::$$_isScreenedfalse
Details- Type
- boolean
- Inherited_from
- \Zend_Pdf_FileParser::$$_isScreened
- Inherited_from
- \Zend_Pdf_FileParser_Image::$$_isScreened
Methods


__construct(\Zend_Pdf_FileParserDataSource $dataSource) : void
Validates the data source and enables debug logging if so configured.
Name | Type | Description |
---|---|---|
$dataSource | \Zend_Pdf_FileParserDataSource |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


__destruct() : void
Object destructor.
Inherited from: \Zend_Pdf_FileParser::__destruct()\Zend_Pdf_FileParser_Image::__destruct()Discards the data source object.


_parseIDATChunk( $chunkOffset, $chunkLength) : void
Name | Type | Description |
---|---|---|
$chunkOffset | ||
$chunkLength |


_parsePLTEChunk( $chunkOffset, $chunkLength) : void
Name | Type | Description |
---|---|---|
$chunkOffset | ||
$chunkLength |


_parseTRNSChunk( $chunkOffset, $chunkLength) : void
Name | Type | Description |
---|---|---|
$chunkOffset | ||
$chunkLength |


getDataSource() : \Zend_Pdf_FileParserDataSource
Returns the data source object representing the file being parsed.
Inherited from: \Zend_Pdf_FileParser::getDataSource()\Zend_Pdf_FileParser_Image::getDataSource()Type | Description |
---|---|
\Zend_Pdf_FileParserDataSource |


isBitSet(integer $bit, integer $bitField) : boolean
Returns true if the specified bit is set in the integer bitfield.
Inherited from: \Zend_Pdf_FileParser::isBitSet()\Zend_Pdf_FileParser_Image::isBitSet()Name | Type | Description |
---|---|---|
$bit | integer | Bit number to test (i.e. - 0-31) |
$bitField | integer |
Type | Description |
---|---|
boolean |


isParsed() : boolean
Returns true if the file has been successfully parsed.
Inherited from: \Zend_Pdf_FileParser::isParsed()\Zend_Pdf_FileParser_Image::isParsed()Type | Description |
---|---|
boolean |


isScreened() : boolean
Returns true if the file has passed a cursory validation check.
Inherited from: \Zend_Pdf_FileParser::isScreened()\Zend_Pdf_FileParser_Image::isScreened()Type | Description |
---|---|
boolean |


moveToOffset(integer $offset) : void
Convenience wrapper for the data source object's moveToOffset() method.
Inherited from: \Zend_Pdf_FileParser::moveToOffset()\Zend_Pdf_FileParser_Image::moveToOffset()Name | Type | Description |
---|---|---|
$offset | integer | Destination byte offset. |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


parse() : void
Reads and parses the image data from the file on disk.
Must set $this->_isParsed to true if successful.
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readBytes(integer $byteCount) : string
Convenience wrapper for the data source object's readBytes() method.
Inherited from: \Zend_Pdf_FileParser::readBytes()\Zend_Pdf_FileParser_Image::readBytes()Name | Type | Description |
---|---|---|
$byteCount | integer | Number of bytes to read. |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readFixed(integer $mantissaBits, integer $fractionBits, integer $byteOrder = \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN) : float
Reads the signed fixed-point number from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readFixed()\Zend_Pdf_FileParser_Image::readFixed()Common fixed-point sizes are 2.14 and 16.16.
Advances the offset by the number of bytes read. Throws an exception if an error occurs.
Name | Type | Description |
---|---|---|
$mantissaBits | integer | Number of bits in the mantissa |
$fractionBits | integer | Number of bits in the fraction |
$byteOrder | integer | (optional) Big- or little-endian byte order. Use the BYTE_ORDER_ constants defined in {@link Zend_Pdf_FileParser}. If omitted, uses big-endian. |
Type | Description |
---|---|
float |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readInt(integer $size, integer $byteOrder = \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN) : integer
Reads the signed integer value from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readInt()\Zend_Pdf_FileParser_Image::readInt()Advances the offset by the number of bytes read. Throws an exception if an error occurs.
Name | Type | Description |
---|---|---|
$size | integer | Size of integer in bytes: 1-4 |
$byteOrder | integer | (optional) Big- or little-endian byte order. Use the BYTE_ORDER_ constants defined in {@link Zend_Pdf_FileParser}. If omitted, uses big-endian. |
Type | Description |
---|---|
integer |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readStringMacRoman(integer $byteCount, string $characterSet = '') : string
Reads the Mac Roman-encoded string from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readStringMacRoman()\Zend_Pdf_FileParser_Image::readStringMacRoman()You must supply the desired resulting character set.
Advances the offset by the number of bytes read. Throws an exception if an error occurs.
Name | Type | Description |
---|---|---|
$byteCount | integer | Number of bytes (characters) to return. |
$characterSet | string | (optional) Desired resulting character set. You may use any character set supported by {@link iconv()}. If omitted, uses 'current locale'. |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readStringPascal(string $characterSet = '', integer $lengthBytes = 1) : string
Reads the Pascal string from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readStringPascal()\Zend_Pdf_FileParser_Image::readStringPascal()The length of the Pascal string is determined by reading the length bytes which preceed the character data. You must supply the desired resulting character set.
Advances the offset by the number of bytes read. Throws an exception if an error occurs.
Name | Type | Description |
---|---|---|
$characterSet | string | (optional) Desired resulting character set. You may use any character set supported by {@link iconv()}. If omitted, uses 'current locale'. |
$lengthBytes | integer | (optional) Number of bytes that make up the length. Default is 1. |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readStringUTF16(integer $byteCount, integer $byteOrder = \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN, string $characterSet = '') : string
Reads the Unicode UTF-16-encoded string from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readStringUTF16()\Zend_Pdf_FileParser_Image::readStringUTF16()The byte order of the UTF-16 string must be specified. You must also supply the desired resulting character set.
Advances the offset by the number of bytes read. Throws an exception if an error occurs.
Name | Type | Description |
---|---|---|
$byteCount | integer | Number of bytes (characters * 2) to return. |
$byteOrder | integer | (optional) Big- or little-endian byte order. Use the BYTE_ORDER_ constants defined in {@link Zend_Pdf_FileParser}. If omitted, uses big-endian. |
$characterSet | string | (optional) Desired resulting character set. You may use any character set supported by {@link iconv()}. If omitted, uses 'current locale'. |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


readUInt(integer $size, integer $byteOrder = \Zend_Pdf_FileParser::BYTE_ORDER_BIG_ENDIAN) : integer
Reads the unsigned integer value from the binary file at the current byte offset.
Inherited from: \Zend_Pdf_FileParser::readUInt()\Zend_Pdf_FileParser_Image::readUInt()Advances the offset by the number of bytes read. Throws an exception if an error occurs.
NOTE: If you ask for a 4-byte unsigned integer on a 32-bit machine, the resulting value WILL BE SIGNED because PHP uses signed integers internally for everything. To guarantee portability, be sure to use bitwise operators operators on large unsigned integers!
Name | Type | Description |
---|---|---|
$size | integer | Size of integer in bytes: 1-4 |
$byteOrder | integer | (optional) Big- or little-endian byte order. Use the BYTE_ORDER_ constants defined in {@link Zend_Pdf_FileParser}. If omitted, uses big-endian. |
Type | Description |
---|---|
integer |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


screen() : void
Verifies that the image file is in the expected format.
Intended to quickly weed out obviously bogus files.
Must set $this->_isScreened to true if successful.
Exception | Description |
---|---|
\Zend_Pdf_Exception |


skipBytes(integer $byteCount) : void
Convenience wrapper for the data source object's skipBytes() method.
Inherited from: \Zend_Pdf_FileParser::skipBytes()\Zend_Pdf_FileParser_Image::skipBytes()Name | Type | Description |
---|---|---|
$byteCount | integer | Number of bytes to skip. |
Exception | Description |
---|---|
\Zend_Pdf_Exception |