Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]skalowanie zdjęć z katalogu
Cromwell
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.09.2009

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


Muszę przeskalować zdjęcia w jednym katalogu na serwerze.
Zdjęcia zajmują ponad 3 giga, jest ich kilkadziesiąt tysięcy.
Zależy mi po prostu na stworzeniu małych miniaturek.

Nazwy zdjęć to hashe md5, czyli mają 32 znaki, żadnych rozszerzeń. W tym samym katalogu są też inne pliki, z innymi nazwami.
Początkowo próbowałem 'starą' metodą, to jest funkcja do zmniejszania zdjęć, a następnie mielenie katalogu i tworzenie miniaturki po natrafieniu na odpowiedni plik.
Fajnie działało, ale wywalało mi błąd 500 serwera, więc to raczej nie tędy droga.

Postanowiłem skorzystać z Imagick - przerobiłem skrypt na taką postać:
  1. <?php
  2. if ($_GET['start'] == 'tak')
  3. {
  4. $folder = dir('photos');
  5. while($plik = $folder->read())
  6. {
  7. if (($plik != '.') AND ($plik != '..'))
  8. {
  9. if (preg_match_all('/^.{32}$/', $plik))
  10. {
  11. if (!file_exist($plik.'.jpg'))
  12. {
  13. $im = new Imagick();
  14. $im->readImage($plik);
  15. $im->thumbnailImage(300, null);
  16. $im->writeImage($plik.'.jpg');
  17. $im->clear();
  18. $im->destroy();
  19. }
  20. }
  21. }
  22. }
  23. echo 'skonczone';
  24. $folder->close();
  25. }
  26. else
  27. {
  28. echo '<form action="cap.php" method="get">
  29. <input type=hidden name=start value="tak">
  30. <input type="submit" value="start" />
  31. </form>';
  32. }
  33. ?>

Problem w tym, że teraz nie przerabia żadnych zdjęć.. jeśli wywalę mielenie katalogu i sprawdzanie czy pliki mają w nazwie 32 znaki, to kilka plików zmieni i stoi.
Wie ktoś, gdzie tu jest błąd?
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: 22.12.2025 - 16:45