幾個月前我啓用了GD在本地主機上發揮與它周圍一下,發現使用各種腳本聯機以獲取更好的理解它做什麼,都好和好。PHP GD頭問題
但現在我覺得我是因爲想重複上面有我不斷收到標題錯誤,本地和遠程主機上的完全相同的腳本時降入瘋狂這裏。我想我必須完全忘記如何做到這一點,所以我需要對此進行簡要回顧。
例如,這是我曾經嘗試過的第一個腳本:
$my_img = imagecreate(200, 80);
$background = imagecolorallocate($my_img, 0, 0, 255);
$text_colour = imagecolorallocate($my_img, 255, 255, 0);
$line_colour = imagecolorallocate($my_img, 128, 255, 0);
imagestring($my_img, 4, 30, 25, "thesitewizard.com",
$text_colour);
imagesetthickness ($my_img, 5);
imageline($my_img, 30, 45, 165, 45, $line_colour);
header("Content-type: image/png");
imagepng($my_img);
imagecolordeallocate($line_color);
imagecolordeallocate($text_color);
imagecolordeallocate($background);
imagedestroy($my_img);
工作得很好回去以後,現在當我運行它,我得到這個:
警告:不能修改標題信息 - 頭已經發出(輸出開始H:\ XAMPP \ htdocs中\測試\的script.php:1)H:\ XAMPP \ htdocs中\上線11 PNG IHDR測試\ script.php的 P ! # PLTE M )B IDATH 1 0EA N : 8Q JN d Z ��! � ���k�Z⊜���k��g�˕��|K$�M��|)��$ů8DfRQB���-��[I��tźR�+���%�"��Ut)(�K�@dF�e�zKF9&�g|C7i��d��\G�Y � �3y�Ƌ�_�%�����IEND�B
警告:錯誤的參數計數在H imagecolordeallocate():\ XAMPP \ htdocs中\上線路測試\的script.php 13
警告:imagecolordeallocate()H中錯誤的參數計數:\ XAMPP \ htdocs中\上線14
測試\ script.php的警告:imagecolordeallocate()H中錯誤的參數計數:\ XAMPP \ htdocs中\上線測試\ script.php的15
因爲我沒有試過,第二腳本同樣的事情:
// create a 200*200 image
$img = imagecreatetruecolor(200, 200);
// allocate some colors
$white = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0, 255);
// draw the head
imagearc($img, 100, 100, 200, 200, 0, 360, $white);
// mouth
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// left and then the right eye
imagearc($img, 60, 75, 50, 50, 0, 360, $green);
imagearc($img, 140, 75, 50, 50, 0, 360, $blue);
// output image in the browser
header("Content-type: image/png");
imagepng($img);
// free memory
imagedestroy($img);
那現在輸出:
警告:不能更改頭信息 - 頭已經發出(輸出開始H:\ XAMPP \ htdocs中\測試\ script.php的:1)在第22行的H:\ xampp \ htdocs \ tests \ script.php中 「PNG」IHDR「」:9 gIDATx v H a < 4Ƹ ܕ :/ { v } z C ( 〜 ҆ Uj1 jƖ 〜)y [ x JW +/n q 9)eɽɽ %Pfg f s+ I;I l2 s -R u9 b } H d B v R 2 Kr h u v 8 y U | ^O T ' : I* R! r % Z $_ L ʴVd W U ' tk 2 \XA5sΫGL0問:0O | MWĴܼç U】FŹǂUO֝ ά OW z k N「 1F 」ls {r ? @ /v ZSw1i ? 8-18] CAxN XW죙ۮ9 - ?!& CHN「RB N!&小時,����q�5���v&h,���
& KX \'7lF.-B �Ƃ�ğ'� ^Ajw�1�X0��X"�*��z�.�&"+|{��v/a+0�1o�i0G!l�~�o�+_�� �_��� 8�r|��F���k��!������}>��Ǟ7Xbb=�]�Rd��1��f�d�}�Nـ�k�ۉ���[5�k��6��y��I��jc�~/��˭N�ڍ�� �s�����4L�X0Ac��4L�X0����;�a�Ƃ &h,���
Ƃ%q ,Nh,�Ƃ1���=�V�h,���
,|?C L,�Ƃn�pϮs<&��ơ"��bq2�tX��w�0��h��bb�^����4�¿�+���; �p1�\�_����ܶ�\o�Z�$����Yxz˟Q�O:��
「8 OV | 78 w ^ԸZX(對\ =?y a: N 4 {〜b [S $ U ᡷ ᡷ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ ֩ | } CBf「 K $$ { 3 E^ vMϨc$ڻ f Pu+W + ; { L 6Dލ w G J T c rl n_J E] | m } >an> IEND B`
但是,我曾經嘗試過的第三個腳本仍然有效:
// read the post data
$data = array('100','200','300','400','500','350','270');
$x_fld = array('Sun','Mon','Tue','Wen','Thu','Fir','Sat');
$max = 0;
for ($i=0;$i<7;$i++){
if ($data[$i] > $max)$max=$data[$i]; // find the largest data
}
$im = imagecreate(320,255); // width , height px
$white = imagecolorallocate($im,255,255,255); // allocate some color from RGB components remeber Physics
$black = imagecolorallocate($im,0,0,0); //
$red = imagecolorallocate($im,255,0,0); //
$green = imagecolorallocate($im,0,255,0); //
$blue = imagecolorallocate($im,0,0,255); //
//
// create background box
//imagerectangle($im, 1, 1, 319, 239, $black);
//draw X, Y Co-Ordinate
imageline($im, 10, 5, 10, 230, $blue);
imageline($im, 10, 230, 300, 230, $blue);
//Print X, Y
imagestring($im,3,15,5,"Students",$black);
imagestring($im,3,280,240,"Days",$black);
imagestring($im,5,100,50,"Simple Graph",$red);
imagestring($im,5,125,75,"by Vijit",$green);
// what next draw the bars
$x = 15; // bar x1 position
$y = 230; // bar $y1 position
$x_width = 20; // width of bars
$y_ht = 0; // height of bars, will be calculated later
// get into some meat now, cheese for vegetarians;
for ($i=0;$i<7;$i++){
$y_ht = ($data[$i]/$max)* 100; // no validation so check if $max = 0 later;
imagerectangle($im,$x,$y,$x+$x_width,($y-$y_ht),$red);
imagestring($im,2,$x-1,$y+1,$x_fld[$i],$black);
imagestring($im,2,$x-1,$y+10,$data[$i],$black);
$x += ($x_width+20); // 20 is diff between two bars;
}
imagejpeg($im, "graph.jpeg", 90);
imagedestroy($im);
echo "<img src='graph.jpeg'><p></p>";
看來,事實上,它不輸出頭就是爲什麼它的工作原理,但爲什麼別人用來工作,現在不是bey尤其是因爲這些錯誤也在一個不相關的遠程主機上覆制,我是不是很笨,並且錯誤地調用腳本?在沒有人詢問的時候,是的,我確信GD已經完全啓用,這裏是相關的規範從的phpinfo:
GD支持:啓用
GD版本:捆綁(2.0.34兼容)
FreeType的支持:啓用
FreeType的聯動:對於FreeType
FreeType的版本:2.1.9
T1Lib支持:啓用
GIF閱讀支持:啓用
GIF創造支持:啓用
JPG支持:啓用
PNG支持:啓用
WBMP支持:啓用
XBM支持:啓用
有人可以請大家指教這個糊塗的女孩?
您是對的,我將腳本的編碼更改爲UTF-8而不使用BOM,它們都完美無缺地工作。再次感謝! – 2010-09-16 19:20:34
不客氣。 – shamittomar 2010-09-16 19:23:19