function __construct($x, $y, $r, $b, $c, $f, $m, $e, $s)
 {
     $this->x = $x;
     $this->y = $y;
     $this->r = $r;
     $this->b = $b;
     $this->c = $c;
     $this->f = hexrgb($f);
     $this->m = hexrgb($m);
     $this->e = hexrgb($e);
     $this->s = hexrgb($s);
 }
Example #2
0
function overpop($t, $id, $clr, $typo, $opac, $w = 320, $h = 240)
{
    $randid = randid();
    $ov = 'document.getElementById(\'crt1' . $randid . '\').style.backgroundColor=\'' . hexrgb($clr, 0) . '\'; document.getElementById(\'crt2' . $randid . '\').style.backgroundColor=\'' . hexrgb($clr, 0.9) . '\';';
    $ot = 'document.getElementById(\'crt1' . $randid . '\').style.backgroundColor=\'' . hexrgb($clr, $opac) . '\'; document.getElementById(\'crt2' . $randid . '\').style.backgroundColor=\'' . hexrgb($clr, 1) . '\';';
    $go = is_numeric($id) ? 'href="' . urlread($id) . '"' : atb('onclick', $id);
    //title
    $title = div(' id="crt2' . $randid . '" style="font-family:' . $typo . '; font-size:24px; text-align:center; color:#' . invert_color($clr, 1) . '; padding:10px; width:140px; background-color:#' . $clr . '; margin:100px auto; vertical-align:middle; box-shadow:0 0 5px #' . $clr . '; text-shadow: 0 0 3px #' . invert_color($clr, 0) . ';"', $t);
    // transition: all 1s ease;
    //rideau
    $sty = 'position:absolute; width:' . ($w ? $w : 320) . 'px; height:' . ($h ? $h : 240) . 'px; background-color:' . hexrgb($clr, $opac) . '; text-align-center; vertical-align:middle; transition: all 1s ease; box-shadow:2px 2px 5px ' . hexrgb('000000', 0.5) . '; display:inline-block;';
    $ret = div(' style="' . $sty . '" id="crt1' . $randid . '"', $t ? $title : '');
    $ret = '<a ' . $go . atb('onmouseover', $ov) . atb('onmouseout', $ot) . '>' . $ret . '</a>';
    return $ret;
}
Example #3
0
function create_image()
{
    $APP = get_instance();
    $image_width = 60;
    $image_height = 26;
    $characters_on_image = 4;
    $font = BASEPATH . 'font/utm_olossalis.ttf';
    //The characters that can be used in the CAPTCHA code.
    //avoid confusing characters (l 1 and i for example)
    $possible_letters = '123456789';
    $random_dots = 0;
    $random_lines = 0;
    $captcha_text_color = "0xFFFFFF";
    $captcha_noice_color = "0x249805";
    $code = '';
    $i = 0;
    while ($i < $characters_on_image) {
        $code .= substr($possible_letters, mt_rand(0, strlen($possible_letters) - 1), 1);
        $i++;
    }
    $APP->session->data['mabaove'] = $code;
    $font_size = $image_height * 0.5;
    $image = @imagecreate($image_width, $image_height);
    /* setting the background, text and noise colours here */
    $background_color = imagecolorallocate($image, 36, 152, 5);
    $arr_text_color = hexrgb($captcha_text_color);
    $text_color = imagecolorallocate($image, $arr_text_color['red'], $arr_text_color['green'], $arr_text_color['blue']);
    $arr_noice_color = hexrgb($captcha_noice_color);
    $image_noise_color = imagecolorallocate($image, $arr_noice_color['red'], $arr_noice_color['green'], $arr_noice_color['blue']);
    /* generating the dots randomly in background */
    for ($i = 0; $i < $random_dots; $i++) {
        imagefilledellipse($image, mt_rand(0, $image_width), mt_rand(0, $image_height), 2, 3, $image_noise_color);
    }
    /* generating lines randomly in background of image */
    for ($i = 0; $i < $random_lines; $i++) {
        imageline($image, mt_rand(0, $image_width), mt_rand(0, $image_height), mt_rand(0, $image_width), mt_rand(0, $image_height), $image_noise_color);
    }
    $textbox = imagettfbbox($font_size, 0, $font, $code);
    $x = ($image_width - $textbox[4]) / 2;
    $y = ($image_height - $textbox[5]) / 2;
    imagettftext($image, $font_size, 0, $x, $y, $text_color, $font, $code);
    header('Content-Type: image/png');
    // defining the image type to be shown in browser widow
    imagepng($image);
    //showing the image
    imagedestroy($image);
    //destroying the image instance
}
$random_lines = 20;
$captcha_text_color = "0x000000";
$captcha_noice_color = "0x142864";
$code = '';
$i = 0;
while ($i < $characters_on_image) {
    $code .= substr($possible_letters, mt_rand(0, strlen($possible_letters) - 1), 1);
    $i++;
}
$font_size = $image_height * 0.7;
$image = @imagecreate($image_width, $image_height);
/* setting the background, text and noise colours here */
$background_color = imagecolorallocate($image, 255, 255, 255);
$arr_text_color = hexrgb($captcha_text_color);
$text_color = imagecolorallocate($image, $arr_text_color['red'], $arr_text_color['green'], $arr_text_color['green']);
$arr_noice_color = hexrgb($captcha_noice_color);
$image_noise_color = imagecolorallocate($image, $arr_noice_color['red'], $arr_noice_color['green'], $arr_noice_color['green']);
/* generating the dots randomly in background */
for ($i = 0; $i < $random_dots; $i++) {
    imagefilledellipse($image, mt_rand(0, $image_width), mt_rand(0, $image_height), 2, 3, $image_noise_color);
}
/* generating lines randomly in background of image */
for ($i = 0; $i < $random_lines; $i++) {
    imageline($image, mt_rand(0, $image_width), mt_rand(0, $image_height), mt_rand(0, $image_width), mt_rand(0, $image_height), $image_noise_color);
}
/* create a text box and add 6 letters code in it */
$textbox = imagettfbbox($font_size, 0, $font, $code);
$x = ($image_width - $textbox[4]) / 2;
$y = ($image_height - $textbox[5]) / 2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $font, $code);
/* Show captcha image in the page html page */
Example #5
0
File: styl.php Project: philum/cms
function affect_rgba($d, $clr)
{
    $r = explode('#', $d);
    $n = count($r);
    $clr[0] = '';
    for ($i = 0; $i < $n; $i++) {
        if (substr($r[$i], 0, 1) == '_') {
            $klr = str_until($r[$i], ';,) ');
            $vlr = substr(trim($klr), 1);
            if (strpos($vlr, '.')) {
                list($abs, $alp) = explode('.', $vlr);
                $ret .= str_replace($klr, hexrgb($clr[$abs], $alp / 10), $r[$i]);
            } else {
                $ret .= '#' . str_replace($klr, $clr[$vlr], $r[$i]);
            }
        } elseif ($i) {
            $ret .= '#' . $r[$i];
        } else {
            $ret .= $r[$i];
        }
    }
    return $ret;
}
function wp_resize_letterbox($src, $w, $h, $color = '#000000')
{
    //$old_file = TimberHelper::get_full_path($src);
    $urlinfo = parse_url($src);
    $old_file = ABSPATH . $urlinfo['path'];
    $new_file = TimberImageHelper::get_letterbox_file_path($urlinfo['path'], $w, $h);
    $new_file_rel = TimberImageHelper::get_letterbox_file_rel($urlinfo['path'], $w, $h);
    $new_file_boxed = str_replace('-lb-', '-lbox-', $new_file);
    if (file_exists($new_file_boxed)) {
        $new_file_rel = str_replace('-lb-', '-lbox-', $new_file_rel);
        return $new_file_rel;
    }
    $bg = imagecreatetruecolor($w, $h);
    $c = hexrgb($color);
    $white = imagecolorallocate($bg, $c['red'], $c['green'], $c['blue']);
    imagefill($bg, 0, 0, $white);
    $image = wp_get_image_editor($old_file);
    if (!is_wp_error($image)) {
        $current_size = $image->get_size();
        $ow = $current_size['width'];
        $oh = $current_size['height'];
        $new_aspect = $w / $h;
        $old_aspect = $ow / $oh;
        if ($new_aspect > $old_aspect) {
            //taller than goal
            $h_scale = $h / $oh;
            $owt = $ow * $h_scale;
            $y = 0;
            $x = $w / 2 - $owt / 2;
            $oht = $h;
            $image->crop(0, 0, $ow, $oh, $owt, $oht);
        } else {
            $w_scale = $w / $ow;
            $oht = $oh * $w_scale;
            $x = 0;
            $y = $h / 2 - $oht / 2;
            $owt = $w;
            $image->crop(0, 0, $ow, $oh, $owt, $oht);
        }
        $image->save($new_file);
        $func = 'imagecreatefromjpeg';
        $ext = pathinfo($new_file, PATHINFO_EXTENSION);
        if ($ext == 'gif') {
            $func = 'imagecreatefromgif';
        } else {
            if ($ext == 'png') {
                $func = 'imagecreatefrompng';
            }
        }
        $image = $func($new_file);
        imagecopy($bg, $image, $x, $y, 0, 0, $owt, $oht);
        $new_file = str_replace('-lb-', '-lbox-', $new_file);
        imagejpeg($bg, $new_file);
        return TimberHelper::get_rel_path($new_file);
    } else {
        TimberHelper::error_log($image);
    }
    return null;
}
Example #7
0
File: ajxf.php Project: philum/cms
function desk_css()
{
    $prmd = $_SESSION['prmd'];
    if ($_SESSION['negcss']) {
        $prmd .= '_neg';
    }
    $clr = $_SESSION['clrs'][$prmd];
    req('styl');
    $g = prma('desktop');
    //sesmk('desklr');
    if ($g) {
        req('spe');
        $g = goodroot($g);
    }
    if (is_dir($g)) {
        $ret = 'background:url(' . randimg($g) . ') no-repeat center fixed; background-size:cover;';
    } elseif (is_image($g)) {
        $ret = 'background:url(' . goodroot($g) . ') no-repeat center fixed; background-size:cover;';
    } elseif (strpos($g, ',') === false && $g) {
        $ret = 'background-color:' . affect_rgba($g, $clr) . ';';
        $klr = $g;
    } else {
        $g = affect_rgba($g, $clr);
        $gh = $g ? $g : '#' . $clr[4] . ',#' . $clr[2];
        $klr = medium_clr($gh);
        if (!$g) {
            $g = 'to bottom, ' . hexrgb($clr[4], 0.4) . ', ' . hexrgb($clr[1], 1) . '';
        }
        $ret = 'height:100%; 
	background:linear-gradient(' . $g . ') no-repeat fixed;';
    }
    return css_code('body {' . $ret . '}
	#desktop a, #desktop .philum {color:#' . invert_color($klr, 1) . ';}
	#page {padding:0; margin:0 40px 0 0; border:0; box-shadow:none;}');
}
 /**
  * @brief 위젯의 실행 부분
  * ./widgets/위젯/conf/info.xml에 선언한 extra_vars를 args로 받는다
  * 결과를 만든후 print가 아니라 return 해주어야 한다
  **/
 function proc($args)
 {
     // 인자 값 정리
     $graph_width = (int) $args->graph_width ? $args->graph_width : 150;
     $graph_height = (int) $args->graph_height ? $args->graph_height : 100;
     $day_range = (int) $args->day_range ? $args->day_range : 7;
     if ($day_range < 7) {
         $day_range = 7;
     }
     $bg_color = hexrgb($args->bg_color ? $args->bg_color : '#FFFFFF');
     $check_bg_color = hexrgb($args->check_bg_color ? $args->check_bg_color : '#F9F9F9');
     $grid_color = hexrgb($args->grid_color ? $args->grid_color : '#dbdbdb');
     $unique_line_color = hexrgb($args->unique_line_color ? $args->unique_line_color : '#BBBBBB');
     $unique_text_color = hexrgb($args->unique_text_color ? $args->unique_text_color : '#666666');
     $point_color = hexrgb($args->point_color ? $args->point_color : '#ed3027');
     // 시작일 부터 오늘까지 일단 배열 만들어 놓기
     $start_time = ztime(date("YmdHis")) - $day_range * 60 * 60 * 24;
     $end_time = time();
     $day_check_falg = 0;
     for ($i = $start_time; $i < $end_time; $i += 60 * 60 * 24) {
         $data[date("Ymd", $i + 60 * 60 * 24)] = 0;
         $day_check_falg++;
         if ($day_check_falg > $day_range) {
             break;
         }
     }
     unset($obj);
     // 현재부터 지난 $day_range동안의 카운터 로그를 가져옴
     $obj->e_regdate = date("Ymd");
     $obj->s_regdate = date("Ymd", ztime(date("YmdHis")) - $day_range * 60 * 60 * 24 + 1);
     $site_module_info = Context::get('site_module_info');
     if ($site_module_info->site_srl) {
         $obj->site_srl = $site_module_info->site_srl;
         $output = executeQuery('widgets.image_counter.getCounterSiteStatus', $obj);
     } else {
         $output = executeQuery('widgets.image_counter.getCounterStatus', $obj);
     }
     $site_srl = (int) $site_module_info->site_srl;
     // 결과가 있다면 loop를 돌면서 최고/최저값을 구하고 그래프를 그릴 준비
     $max_unique_visitor = 0;
     $min_unique_visitor = 99999999999;
     if (count($output->data)) {
         foreach ($output->data as $key => $val) {
             if ($max_unique_visitor < $val->unique_visitor) {
                 $max_unique_visitor = $val->unique_visitor;
             }
             if ($min_unique_visitor > $val->unique_visitor) {
                 $min_unique_visitor = $val->unique_visitor;
             }
             $data[$val->regdate] = $val;
         }
     }
     // 이미지를 그림 (이미지 위치는 ./files/cache/widget_cache/couter_graph.gif로 고정)
     if (!is_dir(_XE_PATH_ . 'files/cache/widget_cache/')) {
         FileHandler::makeDir(_XE_PATH_ . 'files/cache/widget_cache/');
     }
     $image_src = "files/cache/widget_cache/couter_graph." . $site_srl . ".gif";
     // 이미지 생성
     $image = imagecreate($graph_width, $graph_height);
     // 각 종류의 색상을 지정
     $gridLine = imagecolorallocate($image, $grid_color['red'], $grid_color['green'], $grid_color['blue']);
     $fillBack = imagecolorallocate($image, $bg_color['red'], $bg_color['green'], $bg_color['blue']);
     $checkFillBack = imagecolorallocate($image, $check_bg_color['red'], $check_bg_color['green'], $check_bg_color['blue']);
     $visitorLine = imagecolorallocate($image, $unique_line_color['red'], $unique_line_color['green'], $unique_line_color['blue']);
     $visitorText = imagecolorallocate($image, $unique_text_color['red'], $unique_text_color['green'], $unique_text_color['blue']);
     $pointColor = imagecolorallocate($image, $point_color['red'], $point_color['green'], $point_color['blue']);
     // 배경선 채우기
     imagefilledrectangle($image, 0, 0, $graph_width - 1, $graph_height - 1, $fillBack);
     // 가로선 그리기
     $y_gap = ($graph_height - 32) / 3;
     for ($i = 0; $i < 4; $i++) {
         imageline($image, 5, 5 + $i * $y_gap, $graph_width - 5, 5 + $i * $y_gap, $gridLine);
     }
     // 세로선 그리기
     $x_gap = ($graph_width - 30) / ($day_range - 1);
     for ($i = 0; $i < $day_range; $i++) {
         imageline($image, 15 + $i * $x_gap, 5, 15 + $i * $x_gap, $graph_height - 27, $gridLine);
     }
     // 체크 무늬 배경 칠하기
     for ($j = 0; $j < $day_range - 1; $j++) {
         for ($i = 0; $i < 3; $i++) {
             if (($j + $i) % 2 == 1) {
                 continue;
             }
             imagefilledrectangle($image, 15 + $j * $x_gap + 1, 5 + $i * $y_gap + 1, 15 + $j * $x_gap + $x_gap - 1, 5 + $i * $y_gap + $y_gap - 1, $checkFillBack);
         }
     }
     // 그래프 그리기
     $prev_x = 0;
     $prev_y = $graph_height - 45;
     $step = 0;
     // 선 그림
     foreach ($data as $date => $val) {
         // 그래프를 그리기 위한 좌표 구함
         $unique_visitor = $val->unique_visitor;
         if ($max_unique_visitor == 0) {
             $per = 0;
         } else {
             $per = $val->unique_visitor / $max_unique_visitor;
         }
         // x,y 좌표 구함
         $cur_x = (int) ($step * $x_gap);
         $cur_y = (int) ($graph_height - 45 - ($graph_height - 45) * $per);
         imageline($image, $prev_x + 15, $prev_y + 15, $cur_x + 15, $cur_y + 15, $visitorLine);
         $prev_x = $cur_x;
         $prev_y = $cur_y;
         $step++;
     }
     // 포인트 + 숫자 표시
     $prev_x = 0;
     $prev_y = $graph_height - 45;
     $step = 0;
     foreach ($data as $date => $val) {
         // 그래프를 그리기 위한 좌표 구함
         $unique_visitor = $val->unique_visitor;
         if ($max_unique_visitor == 0) {
             $per = 0;
         } else {
             $per = $val->unique_visitor / $max_unique_visitor;
         }
         // x,y 좌표 구함
         $cur_x = (int) ($step * $x_gap);
         $cur_y = (int) ($graph_height - 45 - ($graph_height - 45) * $per);
         imagefilledrectangle($image, $cur_x + 15 - 1, $cur_y + 15 - 1, $cur_x + 15 + 1, $cur_y + 15 + 1, $pointColor);
         for ($j = 0; $j < strlen($unique_visitor); $j++) {
             imageString($image, 1, $cur_x + 6 + $j * 4, $cur_y + 5 + ($step % 2 - 1) * 13 + 13, substr($unique_visitor, $j, 1), $visitorText);
         }
         $prev_x = $cur_x;
         $prev_y = $cur_y;
         imageString($image, 1, $cur_x + 15 - 1, $graph_height - 25, substr($date, 6, 2), $gridLine);
         $step++;
     }
     imageString($image, 1, $graph_width - 100, $graph_height - 15, date("Y-m-d H:i:s"), $gridLine);
     // 이미지 저장
     @imagegif($image, $image_src, 100);
     @chmod($image_src, 0644);
     // graph의 img 태그 값을 return
     return sprintf('<img src="%s%s" border="0" alt="counter" />', Context::getRequestUri(), $image_src);
 }
Example #9
0
function lineargradientArea($canvas, $color, $def)
{
    $steps = 20;
    $oc = $canvas;
    $canvas = hexrgb($canvas);
    $oco = $color;
    $color = hexrgb($color);
    $step['r'] = floor(($color['r'] - $canvas['r']) / $steps);
    $step['g'] = floor(($color['g'] - $canvas['g']) / $steps);
    $step['b'] = floor(($color['b'] - $canvas['b']) / $steps);
    $sl = sprintf('%02x%02x%02x', $color['r'] * 0.98, $color['g'] * 0.98, $color['b'] * 0.98);
    $str = "CDEF:shade{$def}s98={$def},0.98,* AREA:shade{$def}s98#{$sl} ";
    for ($i = 1; $i < $steps; $i++) {
        $n = floor(100 - 100 / $steps * $i);
        $n = sprintf('%02d', $n);
        $nr = $color['r'] - $step['r'] * $i;
        $ng = $color['g'] - $step['g'] * $i;
        $nb = $color['b'] - $step['b'] * $i;
        if ($nr > 255) {
            $nr = 255;
        }
        if ($ng > 255) {
            $ng = 255;
        }
        if ($nb > 255) {
            $nb = 255;
        }
        $nc = '#' . sprintf('%02x%02x%02x', $nr, $ng, $nb);
        $str .= " CDEF:shade{$def}s{$n}={$def},0.{$n},* AREA:shade{$def}s{$n}{$nc} ";
    }
    return $str;
}
Example #10
0
    $image_line_color = imagecolorallocate($image, $arr_line_color["red"], $arr_line_color["green"], $arr_line_color["blue"]);
    for ($i = 0; $i < $no_of_lines; $i++) {
        imageline($image, mt_rand(0, $captcha_width), mt_rand(0, $captcha_height), mt_rand(0, $captcha_width), mt_rand(0, $captcha_height), $image_line_color);
    }
}
/* generating the dots randomly in background */
if ($show_noise == "1") {
    $arr_dots_color = hexrgb($noise_color);
    $image_dots_color = imagecolorallocate($image, $arr_dots_color["red"], $arr_dots_color["green"], $arr_dots_color["blue"]);
    for ($i = 0; $i < $noise_level; $i++) {
        imagefilledellipse($image, mt_rand(0, $captcha_width), mt_rand(0, $captcha_height), 2, 3, $image_dots_color);
    }
}
/* create signature on captcha */
if ($show_signature == "1") {
    $arr_signature_color = hexrgb($signature_color);
    $image_signature_color = imagecolorallocate($image, $arr_signature_color["red"], $arr_signature_color["green"], $arr_signature_color["blue"]);
    if (trim($signature) != "") {
        $bbox = imagettfbbox(10, 0, $captcha_font, $signature);
        $textlen = $bbox[2] - $bbox[0];
        $x = $captcha_width - $textlen - 5;
        $y = $captcha_height - 3;
        imagettftext($image, 10, 0, $x, $y, $image_signature_color, $captcha_font, $signature);
    }
}
/* create a text box and add 6 letters code in it */
$textbox = imagettfbbox($size_font, 0, $captcha_font, $code_string);
$x = ($captcha_width - $textbox[4]) / 2;
$y = ($captcha_height - $textbox[5]) / 2;
imagettftext($image, $size_font, 0, $x, $y, $image_text_color, $captcha_font, $code_string);
/* generating background image for Captcha*/