Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
getFont();
$offset = $font->pos();
$numOfLongHorMetrics = $font->getData("hhea", "numOfLongHorMetrics");
$numGlyphs = $font->getData("maxp", "numGlyphs");
$font->seek($offset);
$data = array();
$metrics = $font->readUInt16Many($numOfLongHorMetrics * 2);
for ($gid = 0, $mid = 0; $gid < $numOfLongHorMetrics; $gid++) {
$advanceWidth = isset($metrics[$mid]) ? $metrics[$mid] : 0;
$mid += 1;
$leftSideBearing = isset($metrics[$mid]) ? $metrics[$mid] : 0;
$mid += 1;
$data[$gid] = array($advanceWidth, $leftSideBearing);
}
if ($numOfLongHorMetrics < $numGlyphs) {
$lastWidth = end($data)[0];
$numLeft = $numGlyphs - $numOfLongHorMetrics;
$metrics = $font->readUInt16Many($numLeft);
for($i = 0; $i < $numLeft; $i++) {
$gid = $numOfLongHorMetrics + $i;
$leftSideBearing = isset($metrics[$i]) ? $metrics[$i] : 0;
$data[$gid] = array($lastWidth, $leftSideBearing);
}
}
$this->data = $data;
}
protected function _encode() {
$font = $this->getFont();
$subset = $font->getSubset();
$data = $this->data;
$length = 0;
foreach ($subset as $gid) {
$length += $font->writeUInt16($data[$gid][0]);
$length += $font->writeUInt16($data[$gid][1]);
}
return $length;
}
}