Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> imagecreatetruecolor nie działa
radziopoke
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


Dawno mnie tu nie było ale do rzeczy:
Nie dawno chciałem zrobić sobie pewien skrypt bazujący na bibliotece GD. Nie raz z niej korzystałem kiedyś i wszystko było w porządku a teraz wyskakują same błędy.

Najpierw używany skrypt:
  1. <?php
  2. $src = imagecreatefromjpeg('test2.jpg');
  3.  
  4. $w = imagesx($src);
  5. $h = imagesy($src);
  6.  
  7. $dest = imagecreatetruecolor($w, $h);//tą linię wskazuje błąd
  8. //tu miały być dalsze operacje
  9. imagedestroy($dest);
  10. imagedestroy($src);
  11. ?>

Po wykonaniu tego skryptu otrzymuję błąd:
Kod
Parse error: syntax error, unexpected '$h' (T_VARIABLE) in C:\xampp\htdocs\testy\galleryimage\image.php on line 7

co dziwniejsze po wykonaniu takiego skryptu:
  1. <?php
  2. $src = imagecreatefromjpeg('test2.jpg');
  3.  
  4. $w = imagesx($src);
  5. $h = imagesy($src);
  6.  
  7. echo $w.' x '.$h;
  8. imagedestroy($src);
  9. ?>

Skrypt wyświetla: 320 x 240
Czyli odpowiednio pobiera parametry.

Nie wiem dlaczego nie chce wykonać się pierwszy skrypt.
1. Biblioteka GD jest włączona(sprawdzałem to na wszystkie możliwe sposoby).
2. gdybym zamienił $dest = imagecreatetruecolor($w, $h); na $desc = imagecreatefromjpeg('test2.jpg'); i prubując dodać funkcję imagecopy to wyrzuca mi błąd w tej funkcji wskazując 2 argument którym jest $desc
3. Nie dotyczy to nazwy $desc gdyż po jej zmianie nadal błąd występował
4. nawet odinstalowałem i na nowo zainstalowałem xampp-a, podmieniałem również pliki związane z biblioteką GD na inne, niestety też nie pomogło.
5. Funkcja imagecreate zachowuje się tak samo

Najbardziej dziwi mnie fakt, że błedy nie wskazują na funkcje z bibklioteki GD tylko na jej parametr (najczęsciej drugi w kolejności).
Co może być powodem tych błedów?

edit:
sprawdziłem jeszcze kilka rzeczy:
1. funkcja imagecreate zachowuje się tak samo
2. gdy w parametrach podam liczby zamiast zmiennych wyskakuje błąd o nieznanej funkcji imagecreate/imagecreatetruecolor
3. Jak już wspomniałem biblioteka GD jezt zainstalowana i uruchomiona
skrypt:
  1. <?php
  2. $testGD = get_extension_funcs("gd"); // Grab function list
  3. if (!$testGD){ echo "GD not even installed."; exit; }
  4. echo"<pre>".print_r($testGD,true)."</pre>";
  5. ?>

pokazuje te funkcje wypisane więc powinny działać

Już sam nie wiem jak temu zaradzić...

Ten post edytował radziopoke 18.08.2013, 17:29:53
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




U mnie wszystko co wkleiłeś działa...
Go to the top of the page
+Quote Post
radziopoke
post
Post #3





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


A z jakiego serwera korzystasz?
Jaką posiadasz wersję biblioteki GD?
I pod jakim systemem to sprawdzałeś?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




System - Windows NT 6.0 build 6002
Serwer - Apache/2.2.8 (Win32) PHP/6.0.0-dev
GD Version - bundled (2.0.28 compatible)
Go to the top of the page
+Quote Post
radziopoke
post
Post #5





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


Mógłbyś mi jakąś podesłać dll-kę php_gd2.dll bo może coś jest nie tak z moją wersją (2.1.0 compatible), a w necie niestety nie da się znaleźć osobno innej wersji wypakowanej osobno.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A nie lepiej zainstalować AppServ?

php_gd2.rar
Go to the top of the page
+Quote Post
radziopoke
post
Post #7





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


niestety ani podmiana pliku ani odinstalowanie całkowicie dotychczasowego serwera i zainstalowanie AppServ nie rozwiązało sprawy.
Wyświetla się taki błąd wskazujący na tą samą linię co poprzedni serwer.
Kod
Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\test.php on line 7


Próbowałem zmieniać nawet kodowanie pliku z ANSII na UTF-8 i na UTF-8(bez BUM)
Niestety efekt ten sam. Więc raczej kodowanie pliku nie ma ty większego znaczenia.

Z początku myślałem również, że być może to wina systemu(Windows XP z SP 3), więc próbowałem przetestować to na innym systemie, akurat tak się złożyło, że mam tablet z androidem na którym posiadam również serwer. Niestety i na androidzie nie przeszło tej linijki...
Więc gdzie może leżeć błąd?

edit:
sprawdzone również na serwerze cba.pl i home.pl
Na każdym z nich również wyskoczył błąd.

Skoro zadziałał ci pierwszy skrypt możesz mi go zapisać i wysłać w formie pliku php. bo może masz jakąś inną metodę zapisu tego pliku. Bo ja nawet kopiując swój pierwszy skrypt z pierwszego wątku również otrzymuję ten sam błąd.

edit2:
Problem rozwiązany choć trochę dziwny.
Efektem błędu były spacje przed parametrami w funkcji.
Oto sposób w jaki do tego doszedłem.
Zacząłem ręcznie przepisywać cały ten krótki kod. O dziwo ku mojemu zaskoczeniu odpalił bezbłędnie. Więc uruchomiłem w notepad++ stary plik i przekopiowałem linijkę
  1. $dest = imagecreatetruecolor($w, $h);

tak by wyglądało to mniej więcej tak:
  1. $dest = imagecreatetruecolor($w, $h);//linijka wpisana ręcznie
  2. $dest = imagecreatetruecolor($w, $h);//linijka przekopiowana ze starego pliku

zapewne różnicy nie widzicie bo jest ona całkowicie nie widoczna! a błąd wyskoczył dla drugiej linijki.
choć już mogłem napisać w nowym pliku wszystko coś nie dawało mi spokoju. Wykasowałem w skopiowanej linijce spacje i ku mojemu zdziwieniu skrypt już nie protestował.
Teraz już wiem, że nie warto kopiować skryptów z internetu a lepiej samemu je wpisywać (IMG:style_emoticons/default/smile.gif)

Ten post edytował radziopoke 20.08.2013, 10:02:12
Go to the top of the page
+Quote Post
sowiq
post
Post #8





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Spróbuj przykładu z php.net i daj znać jaki otrzymałeś wynik:

  1. <?php
  2. $im = @imagecreatetruecolor(120, 20)
  3. or die('Cannot Initialize new GD image stream');
  4. $text_color = imagecolorallocate($im, 233, 14, 91);
  5. imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
  6.  
  7. header ('Content-Type: image/png');
  8. imagepng($im);
  9.  
  10. imagedestroy($im);


Ten post edytował sowiq 20.08.2013, 09:35:24
Go to the top of the page
+Quote Post
radziopoke
post
Post #9





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


jak już napisałem w poprzednim poście problem rozwiązałem.
Co więcej pamiętam, że właśnie funkcję imagecreatetruecolor kopiowałem z php.net i od tego zaczęły się moje problemy.
Tak na szybko sprawdziłem też twój skrypt i działa.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ja skopiowałem z forum i bez problemów...
Go to the top of the page
+Quote Post
sowiq
post
Post #11





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Kshyhoo @ 20.08.2013, 20:24:56 ) *
Ja skopiowałem z forum i bez problemów...

Być może forum filtruje jakoś niestandardowe znaki.
Go to the top of the page
+Quote Post
radziopoke
post
Post #12





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


dla tych co chcą sprawdzić wystarczy w pierwszym poście nacisnąć link pobierz (nad pierwszym skryptem) i tak zapisać wygenerowany plik...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 10:21