Kłopoty z generowaniem obrazka

0

Od jakiegoś czasu eksperymentuję z GD Image w PHP, napisałem sobie taki testowy skrypt:

$string = $rnd (wynik funkcji generujacy losowy tekst);

		$font_size = rand(6, 48); 
		$width  = 140+imagefontwidth($font_size)*strlen($string); 
		$height = 36+imagefontheight($font_size); 
		$img 	= imagecreate($width,$height); 
		$bg   	= imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255)); 
		$color 	= imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255)); 
		$len 	= strlen($string); 
		$ypos 	= 14; 
		
		for($i=0;$i<$len;$i++){ 
		
			$xpos = 64+$i * imagefontwidth($font_size); 
			imagechar($img, rand(2, $font_size+20), $xpos, rand(2, $ypos), $string, $color); 
			$string = substr($string, 1);    
			
		} 
		//header("Content-Type: image/png");
		imagepng($img); 
		imagedestroy($img); 
		
	

Gdy w imagepng podam drugi argument (nazwę pliku) to plik owszem, zapisuje się, ale kiedy chcę go bezpośrednio wywołać to
oto co otrzymuję w oknie przeglądarki.
http://scr.hu/1yl7/63kgo

Czy mogę liczyć na wasze wsparcie w rozwiązaniu tego problemu?

PS: Szukałem tu innych rozwiązań, wszystkie skrypty do generowania obrazków na 4p skutkują takim samym efektem, ale dodam, że mój skrypt kiedyś działał.

http://scr.hu/1yl7/9608b

0

zapewne Twój skrypt wywołuje jakiś błąd/notice, który normalnie php wywala na strone (typu undefinex index itd) - ale ponieważ każesz przeglądarce interpretować zwrot jako obrazek - nie widzisz tego tekstu, tylko "połamany" obrazek.

0

Dzek69, też o tym pomyślałem, ale w logach czysto, no i kolejna sprawa, skrypt (jak pisałem wcześniej) napisany od strzała i tekst
z obrazkiem się generował, więc odłożyłem go na później, skrypt poleżał nieruszony tydzień, może dwa, odpalam go dziś, no i połamaniec...

A żeby było jeszcze śmieszniej, skopiowałem całość do innego pliku - zapisałem no i skrypt odpalił, obrazek został wygenerowany.
No ja tego nie czaję ;)

Ale to nie pierwsze takie czary, jakie mi się w tym roku przytrafiły w programowaniu :]

(Funkcja "A" zwraca tablicę asocjacyjną, a funkcja "B", która nie ma ani jednej definicji tablicy, by wyświetlić dane sama z siebie generuje jeszcze 2 dodatkowe tablice.)

0

A żeby było jeszcze śmieszniej, skopiowałem całość do innego pliku - zapisałem no i skrypt odpalił, obrazek został wygenerowany.

A... to wina IDE zapewne, albo konkretniej jakiegoś notatnika w którym to pewnie składasz - plik zapisał Ci się jako UTF-8 z BOM, a powinien być UTF-8 bez BOM ;)

0

O widzsz, tej kwestii się nie przyjrzałem, ale porównam sobie kodowania ;D
Jeszcze spróbuję znaleźć sposób, by jakoś te litery nie nachodziły na siebie tak mocno, bo reCaptcha stanie się zupełnie nieczytelna :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1