Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Edycja zdjęć
Forum PHP.pl > Forum > Przedszkole
Belial
Napisałem prosty skrypt, żeby pobawić się w edytora zdjęciowego. Niestety nie działa tak jakbym tego oczekiwał, bo wszystkie fotografie zapisują się jako jednolicie brązowy jpg…

  1. <?php
  2.  
  3. require('vendor/autoload.php');
  4. use Gregwar\Image\Image;
  5.  
  6. libxml_use_internal_errors(true);
  7. error_reporting(E_STRICT);
  8.  
  9. $files = scandir('content/');
  10.  
  11. foreach ($files as $file)
  12. {
  13. Image::open()
  14. ->resize(100, 100)
  15. ->sepia()
  16. ->save($file);
  17. }
trueblue
A w którym momencie wczytujesz istniejący plik?
Belial
Wybacz, ale nie za bardzo rozumiem pytanie. Wszystkie pliki z folderu wczytują się wraz z inicjalizacją pętli, ale to przecież oczywiste, więc raczej coś innego miałeś na myśli...
trueblue
Zobacz, w którym miejscu otwierasz plik poddając go edycji.
Belial
Ech, mam dziś jakiś zanik mózgu, bo nie wiem jak to sprawdzić :/
markuz
Może warto metodzie open() powiedzieć jaki plik chcesz otworzyć? Czy jest sprytna i zawsze się domyślała?
jakub.drag
+nie próbować retuszować katalogów ('.', '..')
Belial
Cytat(markuz @ 31.07.2016, 15:35:05 ) *
Może warto metodzie open() powiedzieć jaki plik chcesz otworzyć? Czy jest sprytna i zawsze się domyślała?


Wygląda na to, że metoda open() jest sprytna, bo obrabiając zdjęcia, zachowuje ich nazwy i zmienia rozmiar. Nie wiem tylko, dlaczego wszystkie są brązowe.
trueblue
Wszystkie są brązowe, bo obecny sposób użycia metody open nie obrabia zdjęć.
Wcale więc nie jest tak sprytna.
markuz
Zaryzykował bym i podał jej nazwę pliku do "obrobienia" smile.gif
Belial
Testowałem to już wcześniej. Działa, ale co z tego, skoro chcę w ten sam sposób „obrobić” 50 plików. Wprowadzanie co chwilę nowej nazwy jest trochę bez sensu. Myślałem, że można to zautomatyzować smile.gif
trueblue
W jaki sposób chcesz podawać tą nazwę?
Belial
Podawałem nazwę pliku do obróbki, wywalałem pętlę i wszystko działa - retuszuje jedno zdjęcie. W pętli próbowałem zastosować wyrażenie regularne, ale nie zdaje to egzaminu.
trueblue
Skoro podawałeś nazwę pliku bez pętli, to dlaczego nie podajesz jej w pętli, zamiast jakiegoś wyrażenia regularnego?
Belial
Dlatego że chcę poddać obróbce kilkadziesiąt zdjęć. Poza tym kiedy wrzucam dokładną nazwę pliku do pętli, efekt jest podobny - brązowa fotka.
trueblue
A jak to możliwe, że przy zapisie udaje Ci się nie podawać stałej nazwy?

Przy okazji na ten moment sprawdź jak wygląda oryginał, który chcesz poddać obróbce.
Belial
Jak to nie podaję stałej nazwy przy zapisie? Przecież w pętli, w metodzie save(), mam parametr $file, który przypisuje mi nazwy do poszczególnych plików - takie same, jak zdjęć poddanych obróbce smile.gif
trueblue
A jaki plik podczas pętli otwierasz do obróbki?
Belial
Uruchamiając skrypt, otwierają mi się wszystkie pliki z folderu content i - w brązowej postaci - zapisują się w głównym katalogu, czyli tam, gdzie jest skrypt.
trueblue
Powtarzam Ci jeszcze raz. Nie otwierają się pliki z katalogu content, bo ich najzwyczajniej nie otwierasz.
Nie zapisują również w brązowej postaci, co sam potwierdziłeś ("jednolicie brązowy").
Belial
W takim razie, powiedz proszę, co mam zrobić, żeby otworzyć pliki z tego folderu i poddać je obróbce?
trueblue
markuz podał. Należy wywołać metodę open z argumentem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.