
Эксперт
   
Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири
Репутация: 15 Всего: 71
|
Покопавшись немного, нашел вот что. Скрипт вывода: Код | define("THIS_DIR", dirname(__FILE__)."/"); define("MEASURES_DIR", dirname(__FILE__)."/measures/"); define("IMG_DIR", dirname(__FILE__)."/img/"); define("TTF_ARIAL_BOLD", "arialbi.ttf");
require_once MEASURES_DIR.$_REQUEST['id'].".inc";
$line = imagecreatetruecolor($lineWidth, $lineHeight);
$colorTitle = imagecolorallocate($line, $lineTextColor[0], $lineTextColor[1], $lineTextColor[2]); $colorScale = imagecolorallocate($line, $lineShkaleColor[0], $lineShkaleColor[1], $lineShkaleColor[2]);
$lineBack = imagecreatefrompng(IMG_DIR.$backPicture); $lineDin = imagecreatefrompng(IMG_DIR.$dinamicPicture);
imagecopy($line, $lineBack, 0, 0, 0, 0, $backPictureWidth, $backPictureHeight);
$periodSize = $fineTime - $startTime; $measureSize = $fineX - $startX; $actualPos = (time() - $startTime)/$periodSize; $dinamicPos = $measureSize*$actualPos+$startX; $togo = $fineTime-time(); $toDays = $togo/86400; $toHours = ($toDays - (int)$toDays)*24; $toMins = ($toHours - (int)$toHours)*60;
$lineText = sprintf($lineText, (int)$toDays, (int)$toHours, (int)$toMins); $iso = convert_cyr_string($lineText, "w", "i"); $lineText = iso2uni($iso); //prer($lineText);
imagecopy($line, $lineDin, $dinamicPos-$dinamicPictureWidth, 30, 0, 0, $dinamicPictureWidth, $dinamicPictureHeight);
$titleSize = imagettfbbox($lineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $lineText); imagettftext($line, $lineTextFontSize, 0, ((int)$lineWidth/2) - ((int)$titleSize[2]/2), 15, $colorTitle, THIS_DIR.TTF_ARIAL_BOLD, $lineText);
$period = ($fineTime-$startTime)/86400;
for($n=$interMeasureSize; $n<$period; $n=$n+$interMeasureSize){ $x = (($measureSize/$period)*$n)+$startX; imageline($line, $x, $lineHeight-25, $x, $lineHeight-15, $colorScale); $date = date("d.m.y", $startTime+($n*86400)); $datestr = imagettfbbox($measureTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $date); $dateX = (int)$x-(int)$datestr[2]/2; imagettftext($line, $measureTextFontSize, 0, $dateX, $lineHeight-4, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $date); }
imageline($line, $startX, $lineHeight-60, $startX, $lineHeight-4, $colorScale); imageline($line, $fineX, $lineHeight-60, $fineX, $lineHeight-4, $colorScale);
$startText = iso2uni(convert_cyr_string($startText."\n".date("d.m.y", $startTime), "w", "i")); $fineText = iso2uni(convert_cyr_string($fineText."\n".date("d.m.y", $fineTime), "w", "i"));
$startTextSize = imagettfbbox($endedLineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $startText); $fineTextSize = imagettfbbox($endedLineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $fineText);
imagettftext($line, $endedLineTextFontSize, 0, $startX, $lineHeight-$startTextSize[3]-60, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $startText); imagettftext($line, $endedLineTextFontSize, 0, $fineX-$fineTextSize[2], $lineHeight-$fineTextSize[3]-60, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $fineText);
header("Content-type: image/gif"); imagegif($line);
function iso2uni ($iso){ $uni=""; for ($i=0; $i < strlen($iso); $i++){ $thischar=substr($iso,$i,1); $charcode=ord($thischar); $uni.=($charcode>175)?"&#".(1040+($charcode-176)).";":$thischar; } return $uni; }
|
Файл с данными для линейки: Код | $lineWidth = 500; $lineHeight = 100;
$backPicture = "f1_line_back.png"; $backPictureWidth = 500; $backPictureHeight = 100;
$dinamicPicture = "f1_line_david.png"; $dinamicPictureWidth = 174; $dinamicPictureHeight = 46;
$interMeasureSize = 2;
$startTime = gmmktime(18, 0, 0, 8, 5, 2007); $fineTime = gmmktime(12, 0, 0, 8, 26, 2007);
$startX = 10; $fineX = 490;
$lineText = "До старта ГП Турции осталось %s дней %s часов %s минут"; $lineTextFontSize = 8;
$endedLineTextFontSize = 7; $measureTextFontSize = 7;
$startText = "Хунгароринг-07"; $fineText = "Стамбул-07";
$lineTextColor = array(0, 0, 100); $lineShkaleColor = array(120, 0, 0);
|
Еще вроде тут немного есть: http://phpzakaz.net/demo.phpЭто сообщение отредактировал(а) 2man - 18.6.2009, 23:12
--------------------
Быстро поднятое - упавшим не считаеся
|