Source of file kern.php
Size: 1,854 Bytes - Last Modified: 2021-12-23T10:11:59+00:00
/var/www/docs.ssmods.com/process/src/ext/phenx/php-font-lib/src/FontLib/Table/Type/kern.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php /** * @package php-font-lib * @link https://github.com/PhenX/php-font-lib * @author Fabien Ménager <fabien.menager@gmail.com> * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License */ namespace FontLib\Table\Type; use FontLib\Table\Table; /** * `kern` font table. * * @package php-font-lib */ class kern extends Table { protected function _parse() { $font = $this->getFont(); $data = $font->unpack(array( "version" => self::uint16, "nTables" => self::uint16, // only the first subtable will be parsed "subtableVersion" => self::uint16, "length" => self::uint16, "coverage" => self::uint16, )); $data["format"] = ($data["coverage"] >> 8); $subtable = array(); switch ($data["format"]) { case 0: $subtable = $font->unpack(array( "nPairs" => self::uint16, "searchRange" => self::uint16, "entrySelector" => self::uint16, "rangeShift" => self::uint16, )); $pairs = array(); $tree = array(); $values = $font->readUInt16Many($subtable["nPairs"] * 3); for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) { $left = $values[$idx++]; $right = $values[$idx++]; $value = $values[$idx++]; if ($value >= 0x8000) { $value -= 0x10000; } $pairs[] = array( "left" => $left, "right" => $right, "value" => $value, ); $tree[$left][$right] = $value; } //$subtable["pairs"] = $pairs; $subtable["tree"] = $tree; break; case 1: case 2: case 3: break; } $data["subtable"] = $subtable; $this->data = $data; } } |