Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> imagecopyresampled() jak zapisać miniature na serwerze
kemot
post 29.08.2008, 14:59:39
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 27.09.2007

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


Znalazłem na jakiejś stronie skrypt do tworzenia miniatur. Wyglada on tak:

  1. <?php
  2. //Przypisujemy do zmiennej $img_path ścieżke do obrazka
  3. $img_path = 'dysk:ścieżkadoobrazka.jpg';
  4. //Tworzymy scieżkę do miniaturki
  5. //Do wyświetlenia: zamiana $thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg'; na $thumb_path = '';
  6. $thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg';
  7. //ustalamy maksymalny dopuszczalny rozmiar miniatury
  8. $max_width=$max_height=100;
  9.   
  10. //Sprawdzamy czy obraz istnieje
  11. if(!file_exists($img_path))die('<p>Plik obrazu nie istnieje</p>');
  12.     
  13. //Pobieramy informacjie o obrazie
  14. $img_attr = getimagesize($img_path);
  15.   
  16. //Sprawdzamy czy obraz jest wiekszy na szerokość czy na wysokość 
  17. // i zmniejszamy odpowiednio rozmiar
  18. // $img_attr[0] - szerokosc, $img_attr[1] - wysokość
  19. if($img_attr[0]>$img_attr[1]){
  20.   $scale = $img_attr[0] / $max_width;
  21. } else {
  22.   $scale = $img_attr[1] / $max_height;
  23. }   
  24.   
  25. //Tworzymy obraz miniaturki
  26. $w = floor($img_attr[0]/$scale);
  27. $h = floor($img_attr[1]/$scale);
  28. $thumb = imagecreatetruecolor($w,$h);
  29. $image = imagecreatefromjpeg($img_path);
  30.  
  31. //Kopiujemy obraz pomniejszajac go,
  32. imagecopyresampled($thumb, $image, 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  33.   
  34. //Zapisujemy do pliku (jakość 85)
  35. //Do wyświetlenia: dodanie przed linie imagejpeg($thumb,$thumb_path,85); linijki header('Content-type: image/jpeg');
  36. imagejpeg($thumb,$thumb_path,85);
  37. ?>



Za pomoca tego kodu mogę wyświetlić miniature lub zapisać ją, i tu właśnie mam problem, na dysku tam skąd pobrano obrazek źródłowy. Moje pytanie jak w temacie. Co zrobić by miniatura zapisywała się na serwerze? Dodam jeszcze, że nie znam się za bardzo na obiektowym php i wole korzystać z prostych rozwiązań więc proszę nie polecać mi class.upload.php. Z góry dzięki za odpowiedź.

Ten post edytował kemot 29.08.2008, 15:04:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
likemandrake
post 29.08.2008, 18:21:32
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


Aby zapisac plik na dysku nalezy uzyc funkcji z serii image*(), np. imagepng() do zapisu obrazka w postaci pliku png.


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
kemot
post 29.08.2008, 19:07:58
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 27.09.2007

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


No i mam ten kawałek kodu. Jest imagejpeg tylko ścieżka do zapisu była brana z tej do wczytywania dlatego na dysku sie zapisywało. Zmieniłem
  1. <?php $thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg'; ?>
na
  1. <?php $thumb_path = $_SERVER['DOCUMENT_ROOT'].'miniatura.jpg'; ?>


Jakoś sobie dałem rade ale i tak dzięki smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:44