Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
jak za pomocą php pomniejszyć zdiecie wgrywane na serwer o ile nei jest ono określonego rozmiaru ?? php wystarczy czy trzeba go z czyms połączyć ?
Offline
PHP będzie potrzebowało jeszcze biblioteki obsługującej operacje na obrazkach - np. GD, GD2, ImageMagic etc.
Przejrzyj tą stronę: http://pl.php.net/manual/pl/ref.image.php jest sporo przykładów i opisy funkcji związanych z operacjami na obrazkach.
Offline
GD:
$obrazek = imagecreatefromjpeg('obrazy/galeria/'.$_FILES['plik']['name']); $rozmiar = GetImageSize('obrazy/galeria/'.$_FILES['plik']['name']); if ($rozmiar[0] > $rozmiar[1]) { // bardziej horyzontalny czy vertykalny? $szerokosc=200; // tutaj przypisuję na stale, ale można przypisać wartosc oryginalna, jesli nie zbyt duża/mała $wysokosc=($szerokosc / $rozmiar[0]) * $rozmiar[1]; // proporcje } else { $wysokosc=200; // jw. $szerokosc=($wysokosc / $rozmiar[1]) * $rozmiar[0]; } $miniatura = imagecreatetruecolor($szerokosc, $wysokosc); // miejsce na obrazek po zmianie wymiarów imagecopyresampled($miniatura, $obrazek, 0, 0, 0, 0, $szerokosc, $wysokosc, $rozmiar[0], $rozmiar[1]); // zmiana rozmiaru imagedestroy($obrazek); imagejpeg($miniatura, 'obrazy/galeria/min'.$_FILES['plik']['name'])); // zapis na dysk
Offline
a jakiś dokładniejszy manual po polsku odnośnie gd ?
Offline
GD:
[/quote]
troche to przeedytowałem chciałem żeby po wgraniu jpg na server został zmniejszony do width="600" i przycioł wysokość do tego o ile mniejsze pliki powieksza o tyle sypie sie jak pliki są wieksze
29. $obrazek = imagecreatefromjpeg('test/'.$_FILES['plik']['name']);
30. $rozmiar = GetImageSize('test/'.$_FILES['plik']['name']);
34. $szerokosc=600;
35. $wysokosc=($szerokosc / $rozmiar[0]) * $rozmiar[1];
37. $standart = imagecreatetruecolor($szerokosc, $wysokosc);
38. imagecopyresampled($standart, $obrazek, 0, 0, 0, 0, $szerokosc, $wysokosc, $rozmiar[0], $rozmiar[1]);
41. imagejpeg($standart, 'test/'.$_FILES['plik']['name']);
[/quote]
błędy
Plik nie został załadowany...
Warning: imagecreatefromjpeg(test/1.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/www/private/rumi/plik_wgraj.php on line 29
Warning: getimagesize(test/1.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /home/www/private/rumi/plik_wgraj.php on line 30
Warning: Division by zero in /home/www/private/rumi/plik_wgraj.php on line 35
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/www/private/rumi/plik_wgraj.php on line 37
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/www/private/rumi/plik_wgraj.php on line 38
Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/www/private/rumi/plik_wgraj.php on line 41
[/quote]
[url=http://przyklej24.pl][b][color=green]ogłoszenia internetowe[/color][/b][/url]
[url=http://l-ka.gorlice.pl/][b][color=blue]nauka jazdy gorlice[/color][/b][/url]
[url=http://ciasny.net][color=#FF0000][b]Katalog stron[/b][/color][/url]
[url=http://www.abc-prawko.pl][b]Baza OSK[/b][/url]Offline
Wygląda na to, że plik który wysyłasz nie istnieje. PHP nie może go otworzyć - pierwszy warning - reszta wynika właśnie z tego. Dziwne jest jednak to, że działa dla powiększania, a dla pomniejszania już nie. Upewnij się, że używasz:
move_uploaded_file($_FILES['plik']['tmp_name'],'test/.$_FILES['plik']['name'])
folder ma odpowiednie uprawnienia do zapisu i pole "file" we forumularzu nazywa się "plik".
Offline
jush działa błąd był w ... formularzu :] To teraz jeszcze miniaturke,zmiana nazwy przy zapisie, zapis informacjo do bazy i będzi epiknie
EDIT: i zrobione :) thx za pomoc
Offline
o co mu chodzi w tym komunikacie ??
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1464 bytes) in /home/www/private/rumi/plik_funkcja.php on line 35 [/quote]
czy podobnym tym :
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11424 bytes) in /home/www/private/rumi/plik_funkcja.php on line 2[/quote]
za duze pliki cyz jak ?
pliki na server się wgrywają ale nei zostają pomniejszone
skrypt :
<?
$obrazek = imagecreatefromjpeg('test/'.$nazwa_pliku);
$rozmiar = GetImageSize('test/'.$nazwa_pliku);
if ($rozmiar[0] >= $rozmiar[1])
{
if($rozmiar[0] > 550)
{
$szerokosc=550; // tutaj przypisuję na stale, ale można przypisać wartosc oryginalna, jesli nie zbyt duża/mała
$wysokosc=($szerokosc / $rozmiar[0]) * $rozmiar[1]; // proporcje
$standart = imagecreatetruecolor($szerokosc, $wysokosc); // miejsce na obrazek po zmianie wymiarów
imagecopyresampled($standart, $obrazek, 0, 0, 0, 0, $szerokosc, $wysokosc, $rozmiar[0], $rozmiar[1]); // zmiana rozmiaru
imagejpeg($standart, 'test/'.$nazwa_pliku); // zapis na dysk
}
$szerokosc_m=80; // tutaj przypisuję na stale, ale można przypisać wartosc oryginalna, jesli nie zbyt duża/mała
$wysokosc_m=($szerokosc_m / $rozmiar[0]) * $rozmiar[1]; // proporcje
$miniaturka = imagecreatetruecolor($szerokosc_m, $wysokosc_m); // miejsce na obrazek po zmianie wymiarów
imagecopyresampled($miniaturka, $obrazek, 0, 0, 0, 0, $szerokosc_m, $wysokosc_m, $rozmiar[0], $rozmiar[1]); // zmiana rozmiaru
imagejpeg($miniaturka, 'test/m_'.$nazwa_pliku); // zapis na dysk
}
else
{
if($rozmiar[1] > 550)
{
$wysokosc=550; // tutaj przypisuję na stale, ale można przypisać wartosc oryginalna, jesli nie zbyt duża/mała
$szerokosc=($wysokosc / $rozmiar[1]) * $rozmiar[0]; // proporcje
$standart = imagecreatetruecolor($szerokosc, $wysokosc); // miejsce na obrazek po zmianie wymiarów
imagecopyresampled($standart, $obrazek, 0, 0, 0, 0, $szerokosc, $wysokosc, $rozmiar[0], $rozmiar[1]); // zmiana rozmiaru
imagejpeg($standart, 'test/'.$nazwa_pliku); // zapis na dysk
}
$wysokosc_m=80; // tutaj przypisuję na stale, ale można przypisać wartosc oryginalna, jesli nie zbyt duża/mała
$szerokosc_m=($wysokosc_m / $rozmiar[1]) * $rozmiar[0]; // proporcje
$miniaturka = imagecreatetruecolor($szerokosc_m, $wysokosc_m); // miejsce na obrazek po zmianie wymiarów
imagecopyresampled($miniaturka, $obrazek, 0, 0, 0, 0, $szerokosc_m, $wysokosc_m, $rozmiar[0], $rozmiar[1]); // zmiana rozmiaru
imagejpeg($miniaturka, 'test/m_'.$nazwa_pliku); // zapis na dysk
}
$link1 ='test/'.$nazwa_pliku;
$link2 ='test/m_'.$nazwa_pliku;
?>
[/quote]
z mniejszyymi sobie radzi z wiekszymi niet :]
[color=red]EDIT:[/color]
sie wyjaśniło:
Pytanie
Podczas pracy pojawia się komunikat:
Allowed memory size of 8388608 bytes exhausted (tried to allocate YYYY bytes)
Odpowiedź
Problem jest spowodowany niewystarczającą ilością pamięci przypisanej do skryptów.
Należy zwrócić się do administratora serwera z prośbą aby zwiększył on dostępną dla php pamięć.
Optymalna wartość dla sklepu to 16 megabajtów.
Wartość 8388608 z komunikatu to ilość obecnie przypisanej pamięci.[/quote]
pytanie a jakim najwiekszym zdięciem sobie skrypt poradzi ?
[url=http://przyklej24.pl][b][color=green]ogłoszenia internetowe[/color][/b][/url]
[url=http://l-ka.gorlice.pl/][b][color=blue]nauka jazdy gorlice[/color][/b][/url]
[url=http://ciasny.net][color=#FF0000][b]Katalog stron[/b][/color][/url]
[url=http://www.abc-prawko.pl][b]Baza OSK[/b][/url]Offline
Strony: 1
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00138 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.16.70.247' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.16.70.247', 1734015272) |
0.00041 | SELECT * FROM punbb_online WHERE logged<1734014972 |
0.00072 | DELETE FROM punbb_online WHERE ident='18.217.197.19' |
0.00072 | DELETE FROM punbb_online WHERE ident='185.191.171.16' |
0.00062 | DELETE FROM punbb_online WHERE ident='3.146.176.214' |
0.00058 | DELETE FROM punbb_online WHERE ident='3.148.112.29' |
0.00072 | SELECT topic_id FROM punbb_posts WHERE id=50815 |
0.00186 | SELECT id FROM punbb_posts WHERE topic_id=6395 ORDER BY posted |
0.00078 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=6395 AND t.moved_to IS NULL |
0.00010 | SELECT search_for, replace_with FROM punbb_censoring |
0.00116 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=6395 ORDER BY p.id LIMIT 0,25 |
0.00086 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=6395 |
Total query time: 0.01081 s |