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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-01-07 19:43:52

  Rumi - prawiczek erotoman

Rumi
prawiczek erotoman
Skąd: Gorlice
Zarejestrowany: 2004-09-23
Serwis

[PHP] pomniejszanie zdięć [SOLVED]

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

 

#2  2007-01-08 00:20:40

  cim - Użytkownik

cim
Użytkownik
Skąd: Stargard
Zarejestrowany: 2005-07-31
Serwis

Re: [PHP] pomniejszanie zdięć [SOLVED]

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

 

#3  2007-01-08 15:02:50

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: [PHP] pomniejszanie zdięć [SOLVED]

GD:

Kod:

$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

 

#4  2007-01-12 14:43:54

  Rumi - prawiczek erotoman

Rumi
prawiczek erotoman
Skąd: Gorlice
Zarejestrowany: 2004-09-23
Serwis

Re: [PHP] pomniejszanie zdięć [SOLVED]

a jakiś dokładniejszy manual po polsku odnośnie gd ?

Offline

 

#5  2007-01-13 21:21:41

  Rumi - prawiczek erotoman

Rumi
prawiczek erotoman
Skąd: Gorlice
Zarejestrowany: 2004-09-23
Serwis

Re: [PHP] pomniejszanie zdięć [SOLVED]

GD:

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']);

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

Offline

 

#6  2007-01-14 15:30:22

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: [PHP] pomniejszanie zdięć [SOLVED]

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:

Kod:

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

 

#7  2007-01-14 16:32:12

  Rumi - prawiczek erotoman

Rumi
prawiczek erotoman
Skąd: Gorlice
Zarejestrowany: 2004-09-23
Serwis

Re: [PHP] pomniejszanie zdięć [SOLVED]

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

 

#8  2007-01-25 22:07:34

  Rumi - prawiczek erotoman

Rumi
prawiczek erotoman
Skąd: Gorlice
Zarejestrowany: 2004-09-23
Serwis

Re: [PHP] pomniejszanie zdięć [SOLVED]

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

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

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;
?>

z mniejszyymi sobie radzi z wiekszymi niet :]


EDIT:

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.

pytanie a jakim najwiekszym zdięciem sobie skrypt poradzi ?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)