function fl_text_render($_file, $id, $text, $fontname, $fontsize, $color = "#000000", $out_image_file_type = "png") { $font = locate_font($fontname); if ($font === false) { fllog('fl_text_render: font `' . $fontname . '` not found at `' . flvault . $fontname . '`'); return false; } $render = false; $out_image_file_type = strtolower($out_image_file_type); $cachefile = flcache . $id . '.' . $out_image_file_type; if ($_file !== false) { if (file1_is_older($cachefile, $_file)) { $render = true; } } else { $render = true; } if ($render === true) { try { $draw = new ImagickDraw(); $draw->setFont($font); $draw->setFontSize(intval($fontsize)); $draw->setGravity(Imagick::GRAVITY_CENTER); $draw->setFillColor($color); $canvas = new Imagick(); $m = $canvas->queryFontMetrics($draw, htmlspecialchars_decode($text)); $canvas->newImage($m['textWidth'], $m['textHeight'], "transparent", $out_image_file_type); $canvas->annotateImage($draw, 0, 0, 0, $text); $canvas->setImageFormat(strtoupper($out_image_file_type)); $canvas->writeImage($cachefile); fllog('Writing to: ' . $cachefile); $canvas->clear(); $canvas->destroy(); $draw->clear(); $draw->destroy(); } catch (Exception $e) { fllog('fl_text_render() Error: ', $e->getMessage()); return false; } } return $cachefile; }
function fl_sprite($_file, $sheet_id, $sprite_id, $tag = 'div', $output_filetype = "png") { $sheet = flcache . $sheet_id . '.' . $output_filetype; $sheetfile = fl_get_sheet_filename($sheet_id); $descriptions = fl_load_sheet($sheet_id); if (count($descriptions) == 0) { fllog('fl_sprite: no descriptions (' . flcache . $sheet_id . '.txt' . ',' . $sheet . ',' . $sheetfile . ') available for sheet_id `' . $sheet_id . '`, so nothing done FILE: `' . $_file . '`'); fl_regenerate_sprite_cache($sheet_id, $descriptions, $output_filetype); return '<!-- FontLawyer: sprite description not yet available, place in cache dir as ' . $sheet_id . '.txt; see docs for details on how to make this -->' . PHP_EOL; } $render = false; $out_image_file_type = strtolower($out_image_file_type); $cachefile = flcache . $sprite_id . '.' . $out_image_file_type; if ($_file !== false) { if ($_file === true) { $render = true; } else { if (file1_is_older($cachefile, $_file) && file1_is_older($sheetfile, $_file) && file1_is_older(fl_get_sheet_description_filename($sheet_id), $_file)) { $render = false; } else { $render = true; } } } else { $render = true; } if ($render === true) { fl_regenerate_sprite_cache($sheet_id, $descriptions, $output_filetype); } return '<' . $tag . ' class="' . $sheet_id . '-' . $sprite_id . '"></' . $tag . '>' . PHP_EOL; }