Привет!!!(Долго пересматривала что не так но не вижу, библиотекой начала пользоваться только для решения этой проблемы и пока не хорошо разобралась как и куда .... ) Проблема вывода картинки (использование библиотеки GD) Задача: создать диаграмму ,используя библиотеку GD На странице статистика выводится некоторая информация в виде диаграмм и текста. Проблема состои в следующем: вывод картинки не получется, выводится только значок недоступной картинки и более ничего... Код описан ниже : здесь функция diagrammy: PHP: <?php //.............................function_DIAGRAMM...............................// function Diagramm($value,$value_text,$header_text,$type) { //siize of the image $W=ImageSX($im); $H=ImageSY($im); //color of the text: $im=ImageCreate(500,300); $fontcolor=ImageColorAllocate($im,0, 102, 51); //count the number of legend content $legend_count=count($value_text); $max_length=0; foreach($value_text as $v) if ($max_length<strlen($v)) $max_length=strlen($v); $FONT=2; $font_w=ImageFontWidth($FONT); $font_h=ImageFontHeight($FONT); $l_width=($font_w*$max_length)+$font_h+20; $l_height=$font_h*$legend_count+20; //header text $text_header_x=$font_h+200; $text_header_y=10; $FONT_HEADER=3; ImageString($im,$FONT_HEADER, $text_header_x,$text_header_y,$heading_text, $fontcolor); //the type.......................................................................// //.................................................// //legend and square $text_x=$font_h+10; $text_y=10; $square_x=10; $i=0; if($type=1) { foreach($value_text as $v) { $dy=$text_y+($i*$font_h); ImageString($im, $FONT, $text_x, $dy, $v, $fontcolor); ImageFilledRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $COLORS[$i+1]); ImageRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $fontcolor); $i++; } } //.................................................// //.................................................// $total=array_sum($value); $anglesum=Array(0); $angle_grad=Array(0); $angle_percent=Array(0); $i=1; // count the angels while($i<count($value)) { $part=$value[$i-1]/$total; $angle_grad[$i]=floor($part*360); $angle_percent[$i]=floor($part*100); $anglesum[$i]=array_sum($angle_grad); $anglesum_percent[$i]=array_sum($angle_percent); $i++; } $anglesum[]=$anglesum[0]; $anglesum_percent[]=$anglesum_percent[0]; //esli type=2 //.................................................// //.................................................// if ($type==2) { foreach($anglesum_percent[$i-1] as $p) { ImageString($im, $FONT, $square_x+$font_h-1, $dy+$font_h-1, $p, $fontcolor); $i++; } foreach($value_text as $v) { $dy=$text_y+($i*$font_h); ImageString($im, $FONT, $text_x, $dy, $p, $fontcolor); ImageFilledRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $COLORS[$i+1]); ImageRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $fontcolor); $i++; } } //.................................................// //.................................................// $diametr =-110; $circle_x = ($diametr/2)+200; //using the height of the image $circle_y = $H/2-10; //correct the diametr if ($diametr>($H*2)-20) $diametr=($H*2)-80; //................not...important................................// //make a shadow for ($j=20;$j>0;$j--) for ($i=0;$i<count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y+$j, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $SHADOWS[$i],IMG_ARC_PIE); //.................................................// //output the diagramm: for ($i=0;$i<count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $COLORS[$i],IMG_ARC_PIE); } //.............................................................................................//?> здесь фаил рисуюший диаграмму:diagramma_2.php PHP: <?php session_start(); require_once("config.inc.php"); connectdb(); check_admin(); header("Content-type: image/png"); $im=ImageCreate(500,500); $type=2; $header_text="Selbsteinschätzung zu Ihren Kompetenzen - Gesamtüberblick" $value_text=("Aktivitäts und Kandlungskompetenz","Fach und Methodenkompetenz","Sozial kommunikative kompetenz","Personale Kompetenz" ); $value=sprintf("%d",$_SESSION['choice_value']); Diagramm($value,$value_text,$header_text,$type); ImagePNG($im); ?> здесь файл выводяший диаграмму на страничку t.e. diagramma.tpl: Код (Text): <table> <tr> <img src="diagramm_2.php"> </tr> </table> этой функция рисования диаграммы вызываю из нужного места текушей страницы PHP: <?php function draw_my_diagramm() { $smarty = new SmartyFormsess; if(DEBUG == true) { $smarty->compile_check = true; $smarty->debugging = true; } $smarty->display("diagramm.tpl"); }?> ..причина возможно где-то что-то упустила ведь я только закидываю с файла диаграмму и должна опять вернуться текушую страничку...но я где-то вылетаю не знаю где и почему.... подскажите пожалуйста если что-то увидете не то...но я думаю я не усвоила как именно выводить катинку но вроде сделала все что указано здесь: http://www.php.su/functions/?cat=image заранее спасибо
в самое начало скрипта ini_set('display_errors','Off'); ini_set('error_log','On'); и выкладываем все, что появится в логе ошибок
Абсолютно ничего никаких ошибок такая же картина страница отображается нормально но сам скрипт "статистика"-->только значок недосупной картинки и никакой информации(все по прежнему ). если оставить под комментарий саму функцию отображения диаграммы все работает. -->код "статистика " работает страница "статистика " .php отображается с соответ. должной информацией , но как туда вставить диаграмму? Если вам не трудно вы можете мне написать алгоритм работы вывода изображения сделанного с помошью библиотеки в 2-3 предложениях, а я еше раз просмотрю не забыла чего.
function Diagramm($value,$value_text,$header_text,$type) { //siize of the image $W=ImageSX($im); $H=ImageSY($im); а откуда $im берется-то?
а откуда $im берется-то? просмотрите пожалуйста скрипт:diagramma_2.php там строчка 7- создание $im=ImageCreate(500,500);
Точно , спасибо, -->вот глупость...нет слов!!! хммм .... все равно не нравится не работает, но я еше все проверю хотя после нескольких десятков просмотров вряд ли что-то замечу-->но НАДО.... спасибо , да я думаю мне стоит перепроверить все глупости такого характера ...