Ejemplo n.º 1
0
 function line($x_start, $y_start, $x_end, $y_end, $type, $brush_type, $brush_size, $colour, $offset)
 {
     //dbug("drawing line of type: $type, at offset: $offset");
     $u_start = $x_start + $offset;
     $v_start = $this->calculated['boundary_box']['bottom'] - $y_start + $offset;
     $u_end = $x_end + $offset;
     $v_end = $this->calculated['boundary_box']['bottom'] - $y_end + $offset;
     switch ($type) {
         case 'brush':
             $this->draw_brush_line($u_start, $v_start, $u_end, $v_end, $brush_size, $brush_type, $colour);
             break;
         case 'line':
             ImageLine($this->image, $u_start, $v_start, $u_end, $v_end, $this->colour[$colour]);
             break;
         case 'dash':
             ImageDashedLine($this->image, $u_start, $v_start, $u_end, $v_end, $this->colour[$colour]);
             break;
     }
 }
Ejemplo n.º 2
0
##### Определение цветов
$white = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);
$green = imagecolorallocate($im, 0, 170, 0);
$blue = imagecolorallocate($im, 0, 0, 255);
$black = imagecolorallocate($im, 0, 0, 0);
$grey = imagecolorallocate($im, 192, 192, 192);
for ($i = 0; $i <= 24; $i++) {
    #Сетка - вертикальные линии
    ImageDashedLine($im, 80 + $i * 15, 20, 80 + $i * 15, 120, $grey);
    ImageLine($im, 80 + $i * 15, 118, 80 + $i * 15, 122, $black);
    ImageString($im, 1, 78 + $i * 15, 123, $i, $black);
}
for ($i = 1; $i <= 4; $i++) {
    #Сетка - горизонтальные линии
    ImageDashedLine($im, 80, 20 + $i * 20, 440, 20 + $i * 20, $grey);
    ImageLine($im, 78, 20 + $i * 20, 82, 20 + $i * 20, $black);
}
###### Вывод надписей ######
$m100 = round($max, 0) . " kb/s";
$m80 = round($max * 0.55, 0) . " kb/s";
$m60 = round($max * 0.2, 0) . " kb/s";
$m40 = round($max * 0.074, 0) . " kb/s";
$m20 = round($max * 0.027, 0) . " kb/s";
ImageString($im, 1, 40, 15, $m100, $black);
ImageString($im, 1, 40, 35, $m80, $black);
ImageString($im, 1, 40, 55, $m60, $black);
ImageString($im, 1, 40, 75, $m40, $black);
ImageString($im, 1, 40, 95, $m20, $black);
ImageRectangle($im, 80, 20, 440, 120, $black);
ImageString($im, 2, 220, 5, $ip, $black);
Ejemplo n.º 3
0
 function Line($x1, $y1, $x2, $y2, $linestyle = 'solid')
 {
     if ($x1 >= 0 && $x1 <= $this->width && $y1 >= 0 && $y1 <= $this->height && $x2 >= 0 && $x2 <= $this->width && $y2 >= 0 && $y2 <= $this->height) {
         if ($linestyle == 'solid') {
             ImageLine($this->hImage, $x1, $y1, $x2, $y2, $this->hColor);
         } else {
             ImageDashedLine($this->hImage, $x1, $y1, $x2, $y2, $this->hColor);
         }
         $this->cur_x = $x2;
         $this->cur_y = $y2;
         return true;
     }
     return false;
 }
Ejemplo n.º 4
0
 function DashedLine($image, $x1, $y1, $x2, $y2, $color)
 {
     ImageDashedLine($image, $x1, $y1, $x2, $y2, $color);
 }
Ejemplo n.º 5
0
    $y1 = $gbot - $a;
    $y2 = $gbot - $b;
    $CC = $dv[$C][$x];
    //error_log("y1 = $y1, y2 = $y2, x1 = $x1, x2 = $x2, ($CC)");
    if ($CC == '!') {
        ImageLine($png, $x1, $y1, $x2, $y2, $col[$Y1]);
    } else {
        if ($dv[$C][$x] == '"') {
            ImageLine($png, $x1, $y1, $x2, $y2, $red);
        } else {
            if (isalnum($dv[$C][$x]) && $R >= 0) {
                $y3 = (int) ($gbot - $dv[$R][$x] * $ymult);
                // the next two lines center the code and
                // stop the bird dropping just short of it.
                $lodrop = $y2 + 8 > $gbot ? $gbot : $y2 + 8;
                ImageDashedLine($png, $x2, $lodrop, $x2, $y3, $red);
                if ($dv[$C][$x] != '#') {
                    ImageString($png, 2, $x2 - 2, $y2, $dv[$C][$x], $blue);
                }
            }
        }
    }
    if ($cnv == 1) {
        error_log("cnv ({$Y1}:{$x} = {$dv[$Y1]}[{$x}])");
    }
}
if ($Y2 >= 0) {
    $labbot = $gbot + 45;
    $labrow = 0;
    $lab = 170;
    ImageLine($png, $lab, $labbot, $lab + 25, $labbot, $col[$Y1]);
Ejemplo n.º 6
0
function MyDrawLine($image, $x1, $y1, $x2, $y2, $color, $drawtype)
{
    if ($drawtype == MAP_LINK_DRAWTYPE_BOLD_LINE) {
        imageline($image, $x1, $y1, $x2, $y2, $color);
        if (abs($x1 - $x2) < abs($y1 - $y2)) {
            $x1++;
            $x2++;
        } else {
            $y1++;
            $y2++;
        }
        imageline($image, $x1, $y1, $x2, $y2, $color);
    } else {
        if ($drawtype == MAP_LINK_DRAWTYPE_DASHED_LINE) {
            if (function_exists('imagesetstyle')) {
                /* Use imagesetstyle+imageline instead of bugged ImageDashedLine */
                $style = array($color, $color, $color, $color, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT);
                imagesetstyle($image, $style);
                imageline($image, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
            } else {
                ImageDashedLine($image, $x1, $y1, $x2, $y2, $color);
            }
        } else {
            if ($drawtype == MAP_LINK_DRAWTYPE_DOT && function_exists('imagesetstyle')) {
                $style = array($color, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT);
                imagesetstyle($image, $style);
                imageline($image, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
            } else {
                imageline($image, $x1, $y1, $x2, $y2, $color);
            }
        }
    }
}
Ejemplo n.º 7
0
function bar($var)
{
    $values = explode(",", $var["values"]);
    $labels = explode(",", $var["labels"]);
    $count = count($values);
    $padding = 10;
    $height = $count * 20 + 20;
    $width = 703;
    $max = $values[0];
    $min = $values[0];
    $text_width = 0;
    $text_width_array = array();
    while (list($key, $item) = each($values)) {
        $max = max($max, $item);
        $min = min($min, $item);
        $text_box = ImageTTFBBox(10, 0, "simsun.ttc", $labels[$key]);
        $text_width_value = $text_box[2] - $text_box[0];
        array_push($text_width_array, $text_width_value);
        $text_width = max($text_width, $text_width_value);
    }
    $max_width = $width - $text_width - $padding * 2;
    if ($max < 0) {
        $max = 0;
    }
    if ($min > 0) {
        $min = 0;
    }
    $m_l = floor(log(abs($min), 10));
    //数量级
    $m_r = floor(log($max, 10));
    $m = max($m_l, $m_r);
    $k_l = ceil(abs($min) / pow(10, $m));
    //倍数
    $k_r = ceil($max / pow(10, $m));
    $k = $k_l + $k_r;
    $a = $max_width / ($k * pow(10, $m));
    //系数
    $o = $k_l * pow(10, $m) * $a;
    //原点位置
    //图片初始化
    $img = imagecreate($max_width + $text_width + $padding * 2, $height + $padding * 2);
    $bg = ImageColorAllocate($img, 255, 255, 255);
    ImageColorTransparent($img, $bg);
    $white = ImageColorAllocate($img, 255, 255, 255);
    $black = ImageColorAllocate($img, 0, 0, 0);
    $gray = ImageColorAllocate($img, 230, 230, 230);
    //绘制正文信息
    reset($values);
    while (list($i, $item) = each($values)) {
        getColor(($i + 1) / $count, $r, $g, $b);
        ImageLine($img, 0, $i * 20 + $padding + 17, $max_width + $text_width + $padding * 2, $i * 20 + $padding + 17, $gray);
        ImageFilledRectangle($img, $o, $i * 20 + $padding + 19, $o + $text_width + $padding * 2, $i * 20 + $padding + 35, ImageColorAllocate($img, $r * 0.7, $g * 0.7, $b * 0.7));
        ImageFilledRectangle($img, $o, $i * 20 + $padding + 20, $o + $text_width + $padding * 2, $i * 20 + $padding + 34, ImageColorAllocate($img, $r, $g, $b));
        if ($item < 0) {
            $x = $o + $item * $a;
            ImageFilledRectangle($img, $o, $i * 20 + $padding + 19, $x, $i * 20 + $padding + 35, ImageColorAllocate($img, $r * 0.7, $g * 0.7, $b * 0.7));
            ImageFilledRectangle($img, $o, $i * 20 + $padding + 20, $x + 1, $i * 20 + $padding + 34, ImageColorAllocate($img, $r, $g, $b));
        } else {
            $x = $o + $item * $a;
            ImageFilledRectangle($img, $o + $text_width + $padding * 2, $i * 20 + $padding + 19, $x + $text_width + $padding * 2, $i * 20 + $padding + 35, ImageColorAllocate($img, $r * 0.7, $g * 0.7, $b * 0.7));
            ImageFilledRectangle($img, $o + $text_width + $padding * 2, $i * 20 + $padding + 20, $x + $text_width + $padding * 2 - 1, $i * 20 + $padding + 34, ImageColorAllocate($img, $r, $g, $b));
        }
        $offset = ($text_width - $text_width_array[$i]) / 2;
        ImageTtfText($img, 10, 0, $o + $padding + $offset, $i * 20 + $padding + 32, $black, "simsun.ttc", $labels[$i]);
    }
    //绘制参考线
    ImageTtfText($img, 10, 0, $o + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", "0");
    ImageLine($img, $o, $padding, $o, $padding + $height, $black);
    ImageLine($img, $o + $text_width + $padding * 2, $padding, $o + $text_width + $padding * 2, $padding + $height, $black);
    ImageTtfText($img, 10, 0, $o, $padding + 10, $black, "cour.ttf", "(0x" . pow(10, $m) . ")");
    if ($k > 10) {
        for ($i = 1; $i < $k_l + 1; $i++) {
            if ($i % 2 == 0 && $i != $k_l) {
                $x = $i * $a * pow(10, $m);
                ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . $i * pow(10, $m));
                ImageLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
            }
        }
        for ($i = 1; $i < $k_r + 1; $i++) {
            if ($i % 2 == 0 & $i != $k_r) {
                $x = $i * $a * pow(10, $m);
                ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", $i * pow(10, $m));
                ImageLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
            }
        }
    } else {
        if ($k > 4) {
            for ($i = 1; $i < $k_l + 1; $i++) {
                if ($i != $k_l) {
                    $x = $i * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . $i);
                    ImageLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                }
            }
            for ($i = 1; $i < $k_r + 1; $i++) {
                if ($i != $k_r) {
                    $x = $i * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", $i);
                    ImageLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                }
            }
        } else {
            if ($k > 2) {
                for ($i = 1; $i < $k_l + 1; $i++) {
                    $x = ($i - 0.5) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . ($i - 0.5) * pow(10, $m));
                    ImageDashedLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                    if ($i != $k_l) {
                        $x = $i * $a * pow(10, $m);
                        ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . $i * pow(10, $m));
                        ImageLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                    }
                }
                for ($i = 1; $i < $k_r + 1; $i++) {
                    $x = ($i - 0.5) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", ($i - 0.5) * pow(10, $m));
                    ImageDashedLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                    if ($i != $k_r) {
                        $x = $i * $a * pow(10, $m);
                        ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", $i * pow(10, $m));
                        ImageLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                    }
                }
            } else {
                for ($i = 1; $i < $k_l + 1; $i++) {
                    $x = ($i - 0.5) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . ($i - 0.5) * pow(10, $m));
                    ImageLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                    $x = ($i - 0.25) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . ($i - 0.25) * pow(10, $m));
                    ImageDashedLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                    $x = ($i - 0.75) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o - $x + 2, $padding + 10, $black, "cour.ttf", "-" . ($i - 0.75) * pow(10, $m));
                    ImageDashedLine($img, $o - $x, $padding, $o - $x, $padding + $height, $black);
                }
                for ($i = 1; $i < $k_r + 1; $i++) {
                    $x = ($i - 0.5) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", ($i - 0.5) * pow(10, $m));
                    ImageLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                    $x = ($i - 0.25) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", ($i - 0.25) * pow(10, $m));
                    ImageDashedLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                    $x = ($i - 0.75) * $a * pow(10, $m);
                    ImageTtfText($img, 10, 0, $o + $x + 2 + $text_width + $padding * 2, $padding + 10, $black, "cour.ttf", ($i - 0.75) * pow(10, $m));
                    ImageDashedLine($img, $o + $x + $text_width + $padding * 2, $padding, $o + $x + $text_width + $padding * 2, $padding + $height, $black);
                }
            }
        }
    }
    ImagePNG($img);
    ImageDestroy($img);
}
Ejemplo n.º 8
0
<?php

require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/tools.php";
include $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/statistic/colors.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/img.php";
// init image
$ImageHandle = CreateImageHandle(45, 2);
if (isset($_REQUEST["color"])) {
    $dec = ReColor($color);
} else {
    $dec = 0;
}
if (is_array($dec)) {
    $color = ImageColorAllocate($ImageHandle, $dec[0], $dec[1], $dec[2]);
} else {
    $color = ImageColorAllocate($ImageHandle, 0, 0, 0);
}
if (isset($_REQUEST["dash"]) && $_REQUEST["dash"] == "Y") {
    ImageDashedLine($ImageHandle, 3, 0, 40, 0, $color);
    ImageDashedLine($ImageHandle, 3, 1, 40, 1, $color);
} else {
    ImageLine($ImageHandle, 3, 0, 40, 0, $color);
    ImageLine($ImageHandle, 3, 1, 40, 1, $color);
}
ShowImageHeader($ImageHandle);