/** * 2015-11-30 * @used-by \Df\GoogleFont\Font\Variant\Preview * @return string */ public function ttfPath() { if (!isset($this->{__METHOD__})) { /** @var string $result */ $result = Fs::s()->absolute(['ttf', basename($this->url())]); if (!file_exists($result)) { df_media_write($result, file_get_contents($this->url())); } $this->{__METHOD__} = $result; } return $this->{__METHOD__}; }
/** * 2015-12-08 * @override * @see \Df\GoogleFont\Fonts\Png::draw() * @used-by \Df\GoogleFont\Fonts\Png::image() * @param resource $image * @return void */ protected function draw($image) { /** @var int $x */ $x = 0; /** @var int $y */ $y = 0; $this->_datumPoints = []; /** @var int|bool|resource $r */ $r = imagefill($image, 0, 0, $this->colorAllocateAlpha($image, $this->bgColor())); df_assert($r); // http://stackoverflow.com/a/1397584/254475 imagealphablending($image, true); foreach ($this->previews() as $preview) { /** @var Preview $preview */ try { /** @var resource $previewImage */ $previewImage = imagecreatefromstring($preview->contents()); df_assert($previewImage); try { $r = imagecopy($image, $previewImage, $x, $y, 0, 0, $preview->width(), $preview->height()); df_assert($r); $this->_datumPoints[$preview->getId()] = [$x, $y]; } finally { imagedestroy($previewImage); } } catch (\Exception $e) { df_log($e->getMessage()); } $x += $this->previewWidth(); if ($x >= $this->width()) { $x = 0; $y += $this->previewHeight() + $this->marginY(); } } df_media_write($this->pathToDatumPoints(), df_json_encode($this->_datumPoints)); }
/** * 2015-12-08 * @used-by \Df\GoogleFont\Fonts\Png::createIfNeeded() * @used-by \Df\GoogleFont\Fonts\Sprite::datumPoints() * @return void */ protected function create() { ob_start(); try { $image = $this->image(); try { imagepng($this->image()); } finally { imagedestroy($image); } df_media_write($this->path(), ob_get_contents()); } finally { ob_end_clean(); } }