<?

// функции рисования, основанные на методах develStudio

// рисуем редкий пунктир. В devel studio он слишком жирный
function draw_dotted($cv, $x1, $y1, $x2, $y2, $interval, $len) {

	$cv->moveTo($x1, $y1);

	$x = $x1;
	while($x < $x2) {
		$x += $len;
		$cv->lineTo($x, $y1);

		$x += $interval;
		$cv->moveTo($x, $y1);
	}
}


// загрузка изображения и определения его размеров
// is_trans означает что одна строка снизу отдана для определения прозрачного цвета и нужно в высоте отнять 1.
function Btm_and_size($fname, $is_trans=false) {
	$btm = new TBitmap();
	$btm->loadAnyFile($fname);
	$size = getimagesize($fname);

	if($is_trans)
		$size[1] -= 1;

	return array('btm'=>$btm, 'w'=>$size[0], 'h'=>$size[1]);
}





/*
функции для графиков



*/




// не работает пока
// Создание текста с прозрачным фоном
// работает через диск, поэтому не очень быстрая
// возвращает картинку
function Btm_text_trans_bg($text, $color=NULL) {
	$temp_file = './render_temp.gif';

	/*
	$btm = new TBitmap();
	$btm->setSizes(100, 100);
	$btm->getCanvas();
	*/

	/*
	public function getCanvas(){
		
		$tmp = new TCanvas(false);
		$tmp->self = bitmap_canvas($this->self);
		
		return $tmp;
	}

	*/

	$btm = new TBitmap();
	$btm->setSizes(100, 100);

	$cv = new TControlCanvas($btm);

	if($color)
		$cv->text->color = $color;

	$cv->textOut(0, 0, $text);

	$btm->setSizes(30, 30);

	$cv->savePicture($temp_file);
	$img = Btm_and_size($temp_file);
	return $img;
}

// не работает
// конверируем rgb в gbr который использует devel studio
// принимает строку а не число!!!
function str_to_color($str) {
	$new_str = $str[4] . $str[5] . $str[2] . $str[3] . $str[0] . $str[1];

	//print ", $str " . '0x'.$new_str;

	return intval($new_str, 16);

	// $color = dechex(hexdec('0x'.$new_str));

	// return $color;
}


?>