Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> copy jpg ze skryptu generującego jpga, a może tak się nie da?
hao
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


W poniższym skrypcie:

  1. <?
  2. $katalog="test";
  3.  
  4. if ($handle = opendir($katalog)):
  5. {
  6.  while (false !== ($file = readdir($handle)))
  7.  {
  8.  if ($file != "." && $file != ".." && substr($file, -3,3) == "jpg" && substr($file, 1,2) != "m_" ):
  9.  {
  10.  copy("$katalog/m.php?pic=$file", "$katalog/m_$file");
  11.  }
  12.  endif;
  13.  }
  14. }
  15. endif;
  16. ?>

chcę wszystkie pliki .jpg skopiować do miniaturek. Plik m.php pobiera sobie plik jpg, pomniejsza go, resampluje i na wyjściu wyrzuca już nowego jpega. (sam plik m.php działą bez zarzutu). Jednak w powyższym skrypcie najwyraźniej funkcja copy nie radzi sobie, kiedy nie podaję "normalnej" ścieżki dostępu do jpega, tylko do pliku generującego jpega. Zaznaczam, że skrypt , gdy podam mu normalną scieżkę tj. np.
  1. <?php
  2. copy("sciezka/plik.jpg", "sciezka/nowy.jpg");
  3. ?>

to działa poprawnie.

W moim przypadku zwraca się komunikat:

Warning: copy(test/m.php?pic=test.jpg): failed to open stream: No such file or directory in /var/www/re/index.php on line 12

Podaję również zawartość pliku m.php:
  1. <?php
  2. // pobieram sobie nazwę obrazka do resamplingu ze zmiennej pic
  3. $filename = $_GET['pic'];
  4. $percent = 0.5; // pomniejsznie o połowe
  5.  
  6. header('Content-type: image/jpeg');
  7.  
  8. list($width, $height) = getimagesize($filename);
  9. $new_width = $width * $percent;
  10. $new_height = $height * $percent;
  11.  
  12. $image_p = imagecreatetruecolor($new_width, $new_height);
  13. $image = imagecreatefromjpeg($filename);
  14. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  15.  
  16. //wyjście
  17. imagejpeg($image_p, null, 100);
  18. ?>

(zresztą ten skrypt jest skopiowany z php.net)

Czy ktoś ma jakiś pomysł na rozwiązanie tego problemu?

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




MIalem na mysli pierwszy argument funkcji. Jako pierwszy argument podajesz nazwe pliku, który ma ci wygenerowac dopiero jpg. Ty musisz od razu podać nazwe juz istniejącego pliku.


Jesli wygeneryjesz juz jpg, to zapisz go tam gdzie chcesz. fopen, fwrite,fclose
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 01:29