![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 23.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie mam problem z moim skryptem, ktory w planach mial robic upload plikow graficznych a nastepnie zmieniejszac je do rozmiarow wygodnych dla uzytkownika ogladajacego galerie oraz tworzc miniatury zdjec.Co prawda tworzy pliki jpeg o podanych nowych rozmiarach (normalne i miniatury) ale wszystkie maja biale tlo, w dodatku wywala to: (wiem ze to jest powodem tego ze obrazki sa puste bo przeciez imagecopyresampled przekopiwuje z jednego do drugiego):
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /.../ on line 53 Oto kod: CODE <? // tworzenie krotkich nazw zmiennych $plik_tmp = $_FILES['plik']['tmp_name']; $plik_nazwa = $_FILES['plik']['name']; $plik_rozmiar = $_FILES['plik']['size']; $plik_typ = $_FILES['plik']['type']; $katalog = $_POST['katalog']; $plik = $_POST['plik']; // nowe katalogi @ mkdir('images/galeria/'.$katalog, 0777); @ mkdir('images/galeria/'.$katalog.'/mini', 0777); $plik_nazwa = $katalog.rand(0,99999999).'.jpeg'; // upload na serwer { if(!file_exists($plik_nazwa)) { if(is_uploaded_file($plik_tmp)) { $album = 'images/galeria/'.$katalog; move_uploaded_file($plik_tmp, 'images/galeria/tmp/'.$plik_nazwa); $mode = '777'; $filename = 'images/galeria/tmp/'.$plik_nazwa; $mode_dec = octdec($mode); chmod($filename, $mode_dec); $obraz1 = $filename; $obraz = imagecreatefromjpeg("$plik"); list($aheight, $awidth) = getimagesize("$filename"); // odczytywanie wielkosci obrazka if ( $aheight > 800 || $awidth > 600 ) { if ($aheight > 800) { $nheight = 800; $nwidth = ceil($nheight * ($aheight / $awidth)); } elseif ($awidth > 600) { $nwidth = 600; $nheight = ceil($nwidth * ($awidth / $aheight)); } $obraz2 = imagecreatetruecolor( $nwidth, $nheight ); $background = imagecolorallocate($obraz2, 255, 255, 255); imagefill($obraz2, 0, 0, $background); imagecopyresampled( $obraz2, $obraz, 0, 0, 0, 0, $nwidth, $nheigth, $awidth, $aheight ); $awidth = $nwidth; $aheight = $nheight; } else { $nwidth = $awidth; $nheight = $aheight; } if ( $nwidth/$nheight > $nheight/$nwidth ) { // poziomo $mwidth = 120; $mheight = 90; $obraz_mini = imagecreatetruecolor( $mwidth, $mheight ); imagecopyresampled( $obraz_mini, $obraz2, 0, 0, 0, 0, $mwidth, $mheight, $awidth, $aheight ); }else { // pionowo $mwidth = 90; $mheight = 120; $obraz_mini = imagecreatetruecolor( $mwidth, $mheight ); imagecopyresampled( $obraz_mini, $obraz2, 0, 0, 0, 0, $mwidth, $mheight, $awidth, $aheight ); } // zapis $plk = fopen ('images/galeria/'.$plik_nazwa, "w"); ob_start(); imagejpeg( $obraz2, 'images/galeria/'.$plik_nazwa, 100 ); fwrite($plk, ob_get_contents()); ob_end_clean(); fclose($plk); $plk1 = fopen ('images/galeria/mini_'.$plik_nazwa, "w"); ob_start(); imagejpeg( $obraz_mini,'images/galeria/mini_'.$plik_nazwa, 100 ); fwrite($plk1, ob_get_contents()); ob_end_clean(); fclose($plk1); } else { echo 'Problem: Plik nie moze byc skopiowany do katalogu'; exit; } } else echo 'Plik o takiej nazwie istnieje'; } ?> Prosze o zerkniecie na kod oraz o propozycje zmian aby to w koncu zaczelo dzialac bo mecze sie z tym juz dobrych kilka dni. Ten post edytował bikerszymek 23.08.2008, 22:08:06 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Z tego co widać do funkcji nie jest dostarczany wygenerowany obrazek, po sprawdzaj funkcją is_resource()" title="Zobacz w manualu PHP" target="_manual w jakich miejscach jest obrazek.
Pozdrawiam. -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 23.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje badzo za odpowiedz ale doslowanie przed chwila sobie z tym poradzilem:)
Temat do zamkniecia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:45 |