САМОУЧИТЕЛЬ PHP 4

         

Пример


В листинге 23.3 я привожу пример сценария, который использует возможности вывода TrueType-øрифтов, а также демонстрирует работу с цветом RGB. Хотя размер примера довольно велик, рисунок, который он генерирует, выглядит довольно привлекательно

(см. рис. 23.1)[E115][DK116] .

Листинг 23.3. Вывод строки произвольного формата

<?

// Аналог imageColorAllocate() (по умолчанию), но работает не с

// RGB-тройкой, а с цветом в формате XXYYZZ, где:

// * XX — red-составляющая в шестнадцатеричном формате;

// * YY — green-составляющая в шестнадцатеричном формате;

// * ZZ — blue-составляющая в шестнадцатеричном формате.

// Можно указать другую функцию получения цвета, задав ее

// имя в параметре $func (например, imageColorClosest).

function imageColorHex($im, $c, $func="imageColorAllocate")

{ // Сначала дополняем нулями в начале, если нужно

  for($i=strlen($c); $i<6; $i++) $c='0'.$c;

  $r=hexdec(substr($c,0,2));

  $g=hexdec(substr($c,2,2));

  $b=hexdec(substr($c,4,2));

  return $func($im,$r,$g,$b);

}

// Первым делом устанавливаем параметры по умолчанию. Эти

// параметры можно переопределять при вызове сценария

// (например, ttf.php?a=20&f=arial&text=Hi+there)

if(!@$a) $a=30;       // угол поворота (по умолчанию 30)

if(!@$s) $s=80;       // размер шрифта (80)

if(!@$b) $b="00AAAA"; // цвет заднего плана (зеленовато-голубой)

if(!@$c) $c="FFFF00"; // цвет букв (ярко-желтый)

if(!@$d) $d=10;       // зазор между текстом и границей рисунка

if(!@$f) $f="times";  // шрифт

if(!@$text) $text="Hello world!"; // текст

// Получаем границы рамки текста

$Bnd=imageTTFBBox($s,$a,getcwd()."/$f.ttf",$text);

// Массивы x- и y-координат всех точек

$X=$Y=array();

// Заполняем эти массивы на основании $Bnd

for($i=0; $i<4; $i++) {

  $X[]=$Bnd[$i*2];

  $Y[]=$Bnd[$i*2+1];

}

// Вычисляем размер картинки с учетом зазора $d

$MX=max($X)-min($X)+$d*2; // размер по x

$MY=max($Y)-min($Y)+$d*2; // размер по y




Содержание  Назад  Вперед






Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий