![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
mam taki problem co sie dzieje na kazdym serwerze jako uzywam. Testowalem w darmowych serwerach kod php i za kazdym razem mi sie taki blad pokazuje.
Cytat Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/a8487159/public_html/resizejpeg.php on line 11 a kod php gdzie jest kod wyglada mniej wiecej taki Kod 8-list($width, $height) = getimagesize($file); 9-$new_width = $sze; 10-$new_height = $wys; 11-$image_p = imagecreatetruecolor($new_width, $new_height); czy ktos moze mi powiedziec o co chodzi z tym imagecreatetruecolor?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (znaczy czytalem cos na temat tego imagecreatetruecolor na stronie phpclasses i na stronie php.pl ale nadal nie jasne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) wiecie jak to naprawic?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) to raz. A 2 jest to ze pozniej jak chcialbym zapisac obrazek na kompie to zamiast zapisac tego obrazka np w formacie .jpeg to mi sie zapisuje jako php oO (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) nie za bardzo rozumiem. Folder gdzie obrazki sa pochowane nazywa sie upload i dalem chmod 777. a kod php do tego wyglada tak Kod $data_obrazka = date('jmyhis'); $katalog='upload/'; $name = $katalog.$data_obrazka.'_'.$userfile_name; $dir = $userfile; if (move_uploaded_file($dir,$name)){ echo('<img src="resizejpeg.php?file='.$name.'&jakosc=85&szerokosc='.$_POST['szerokosc'].'&wysokosc='.$_POST['wysokosc'].'">'); kolega mi powiedzial ze cos tam z biblioteka. Moze ktos tez mi wyjasni co i jak zeby bylo mozna zapisac obrazek na kompie?? Dziekuje bardzo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Komunikat chyba dosc wyraźnie mowi, ze zapodajesz zle wymiary. Zapewne te wartosci są puste. Ciezko wyswietlic i sprawdzic co tam jest?
Co to jest te $sze i $wys? Skad to bierzesz? Najwyraźniej jest to zerem lub nie istnieje wogole. Sprawdz, przeanalizuj. Dupczenie przez echo to najlepsza metoda. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
zapewniam cie ze istnieje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod <input type="file" id="disc" name="userfile" size="50" style="height:21px; border-top:solid 1px #6F6F6F;"> <p id="opcja"> Szerokość: <input type="text" name="szerokosc" id="szerokosc" size="4" maxlenght="4" onclick="this.value=''" /> Wysokość: <input type="text" name="wysokosc" size="4" id="wysokosc" maxlenght="4" onclick="this.value=''" /> zapomnialem dac tego wyzej stad pytanie co to $sze i $wys Kod $file = $_GET['file']; $jakosc = $_GET['jakosc']; $sze = $_GET['szerokosc']; $wys = $_GET['wysokosc']; list($width, $height) = getimagesize($file); $new_width = $sze; $new_height = $wys; $image_p = imagecreatetruecolor($new_width, $new_height); a wartosci dalem.. Ten post edytował ^(-.-)^ 5.09.2008, 16:53:01 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat zapewniam cie ze istnieje A zrobiles echo $sze? Zrob prosze, bo zapewnienia poprzez pokazanie kawalka formularza nic nei znacza. Bardziej wiarygogny jest komunikat bledu niz twoj kod. Nie pokazales jaką metodą wysylasz forma, czy post czy get, a skoro jest tam tez plik to powinno byc raczej post, czyli nie $_GET a $_POST i w formularzu trzeba powiedziec ze to ma isc postem. Tak samo ten kod: $file = $_GET['file']; a w formie masz name="userfile" (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nastepnym razem wiec mnie nie zapewniaj a zrob oco prosze, czyli ECHO |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
Zrobilem echo $sze i zamiast pokazywac obrazek nic sie nie pokazalo.
tutaj masz stronke testowa. http://ejsi.site40.net sprobuj uploadowac zdjecie i dodaj wartosci szerokosc i wysokosc jaka chcesz... musza byc tam wartosci inczej nic z tego.. no i potem zobaczysz co dalej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no widzisz, czyli nic ci z forma nie pobiera...
ustawiles te $_POST jak prosilem? Bo widze ze form wysylasz postem. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 23.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tu masz dzialajaca funkcje, mialem podobny problem do Twojego ale teraz nie pamietam gdzie byl pies pogrzebany (wydaje mi sie ze podajesz zla sciezke do pliku)
CODE function galeria($plik_tmp, $plik_nazwa) { $filename = 'images/galeria/' . basename($plik_nazwa); $nazwa = '' . basename($plik_nazwa); // upload na serwer { if(!file_exists($plik_nazwa)) { if(is_uploaded_file($plik_tmp)) { move_uploaded_file($plik_tmp, $filename); $zrodlo=$filemane; $obraz = @ imagecreatefromjpeg('images/galeria/' . basename($plik_nazwa)) or die("Nie udalo sie otworzyc strumienia"); list($aheight, $awidth) = getimagesize('images/galeria/' . basename($plik_nazwa)); // odczytywanie wielkosci obrazka if ( $aheight > 800 || $awidth > 600 ) { if ( $awidth/$aheight > $aheight/$awidth ) { $nheight = 800; $nwidth = floor($nheight * ($aheight / $awidth)); } else { $nwidth = 800; $nheight = floor($nwidth * ($awidth / $aheight)); } $obraz2=imagecreatetruecolor($nwidth, $nheight); $dx=0; $dy=0; $dw=$nwidth; $dh=$nheight; imagecopyresampled($obraz2,$obraz,$dx,$dy,0,0,$dw,$dh,$aheight,$awidth); $awidth = $nwidth; $aheight = $nheight; } else { $nwidth = $awidth; $nheight = $aheight; } if ( $nwidth/$nheight > $nheight/$nwidth ) { // poziomo $mwidth = 120; $mheight = floor($mwidth * ($nheight / $nwidth)); $obraz_mini = imagecreatetruecolor($mwidth,$mheight); $dx=0; $dy=0; $dw=$mwidth; $dh=$mheight; imagecopyresampled($obraz_mini,$obraz2,$dx,$dy,0,0,$dw,$dh,$nwidth,$nheight); }else { // pionowo $mheight = 120; $mwidth = floor($mheight * ($nwidth / $nheight)); $obraz_mini = imagecreatetruecolor($mwidth, $mheight); $dx=0; $dy=0; $dw=$mwidth; $dh=$mheight; imagecopyresampled($obraz_mini,$obraz2,$dx,$dy,0,0,$dw,$dh,$nwidth,$nheight); } $plik_nazwa = $katalog.'_'.rand(0,99999999).'.jpeg'; $nazwa = '' . basename($plik_nazwa); // zapis imagejpeg( $obraz2,'images/galeria/'.$katalog.'/'.$nazwa, 100 ); imagejpeg( $obraz_mini,'images/galeria/'.$katalog.'/mini/mini_'.$nazwa, 100 ); } else { echo 'Problem: Plik nie moze byc skopiowany do katalogu'; exit; } } else echo 'Plik o takiej nazwie istnieje'; } CODE $plik_tmp_1 = $_FILES['plik']['tmp_name'][0]; $plik_nazwa_1 = $_FILES['plik']['name'][0]; CODE galeria($plik_tmp_1, $plik_nazwa_1);
Ten post edytował bikerszymek 8.09.2008, 09:09:36 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
Cytat (wydaje mi sie ze podajesz zla sciezke do pliku) Mam dobra sciezke (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dam tutaj caly kod tego resizejpeg.php
a do upload fotki: upload.php
a z form mam
czytalem na stronie php o tym imagecolor. Ten blad co mi wyskakuje za kazdym razem jak uploaduje fotki. Cytat Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/a8487159/public_html/resizejpeg.php on line 11 no i pisza tak. Cytat imagecreatetruecolor() returns an image identifier representing a black image of the specified size. Depending on your PHP and GD versions this function is defined or not. With PHP 4.0.6 through 4.1.x this function always exists if the GD module is loaded, but calling it without GD2 being installed PHP will issue a fatal error and exit. With PHP 4.2.x this behaviour is different in issuing a warning instead of an error. Other versions only define this function, if the correct GD version is installed. wiec pytanie czy to wina serwera ktora nie jest platna?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) a jesli bede mial serwer wlasny czy mozna skonfigorowac tego GD2 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) bo wtedy niby blad nie bedzie sie pojawil |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Kurde, chlopie, marnujesz nasz czas. Juz trzeci raz ci piszę, ze skoro wysylasz forma postem to masz miec nie $_GET a $_POST a ty dalej swoje. Masz problemy z czytaniem czy jak?
ps: przenosze tam gdzie tego miejsce |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
a tu rozumiesz to co ja pisze ze wszystko jest ok oprocz tego imagetruecolor?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? lol. Nawet podalem co php.pl napisal na ten temat. oO.
dlatego sie pytalem czy przez to ze serwer nie jest skonfigurowane do GD2 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie imagecreatetruecolor jest złe, tylko Twoje rozumowanie. Jakbyś się przemógł i podał tam wreszcie dobre dane, co proponuje Ci nospor, to przestałbyś mieć kłopoty z tą funkcją. Jakby jej nie było w php, to nie pisałoby że masz złe wymiary, tylko że nie ma takiej funkcji. Wystarczy pomyśleć, prawda?
I nie jest wszystko ok prócz tego, w sumie to cały skrypt nie jest ok - skoro nie możesz stworzyć obrazka, to leży CAŁA funkcjonalność. Ten post edytował Shili 9.09.2008, 11:18:22 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
Obrazek moge stworzyc i pomniejszyc nawet (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak daje wartosci czyli szerokosc i wysokosc to razem z obrazkiem blad sie pokazuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 4.09.2008 Ostrzeżenie: (20%) ![]() ![]() |
ale po co mi wartosci 100,100 jak jasne jest napisane ze
Cytat $new_width = $sze; $new_height = $wys; $image_p = imagecreatetruecolor($new_width, $new_height); czyli wartosci z: Cytat $sze = $_GET['szerokosc']; $wys = $_GET['wysokosc']; (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? po co mi tutaj wciskasz 100, 100?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) owszem pokazuje ten sam warning. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chyba jasne po co?
Wartości 100 są zawsze wartościami 100. $sze nie zawsze będzie sensowną wartością - póki nie debugujesz nie możesz być tego pewny. A z tego co widzę nie debugujesz w żaden sposób. Testowałam na yoyo i cba - dwóch darmowych serwerach - kod z manuala z imagecreatetruecolor - na obu pokazały mi się obrazki. Innymi słowy jednak masz coś skopane w wymiarach, albo masz spory problem w trafieniu serwera. Ten post edytował Shili 9.09.2008, 12:02:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:43 |