Belial
31.07.2016, 12:53:17
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…
<?php
require('vendor/autoload.php');
use Gregwar\Image\Image;
libxml_use_internal_errors(true);
$files = scandir('content/');
foreach ($files as $file)
{
Image::open()
->resize(100, 100)
->sepia()
->save($file);
}
trueblue
31.07.2016, 13:09:19
A w którym momencie wczytujesz istniejący plik?
Belial
31.07.2016, 13:25:30
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
31.07.2016, 14:01:47
Zobacz, w którym miejscu otwierasz plik poddając go edycji.
Belial
31.07.2016, 14:19:39
Ech, mam dziś jakiś zanik mózgu, bo nie wiem jak to sprawdzić :/
markuz
31.07.2016, 14:35:05
Może warto metodzie open() powiedzieć jaki plik chcesz otworzyć? Czy jest sprytna i zawsze się domyślała?
jakub.drag
31.07.2016, 14:38:54
+nie próbować retuszować katalogów ('.', '..')
Belial
31.07.2016, 16:00:49
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
31.07.2016, 16:03:06
Wszystkie są brązowe, bo obecny sposób użycia metody open nie obrabia zdjęć.
Wcale więc nie jest tak sprytna.
markuz
31.07.2016, 16:03:45
Zaryzykował bym i podał jej nazwę pliku do "obrobienia"
Belial
31.07.2016, 16:14:08
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ć
trueblue
31.07.2016, 16:15:20
W jaki sposób chcesz podawać tą nazwę?
Belial
31.07.2016, 16:22:20
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
31.07.2016, 16:27:16
Skoro podawałeś nazwę pliku bez pętli, to dlaczego nie podajesz jej w pętli, zamiast jakiegoś wyrażenia regularnego?
Belial
31.07.2016, 16:33:36
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
31.07.2016, 16:36:08
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
31.07.2016, 16:44:23
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
trueblue
31.07.2016, 16:46:54
A jaki plik podczas pętli otwierasz do obróbki?
Belial
31.07.2016, 16:52:28
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
31.07.2016, 16:55:07
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
31.07.2016, 18:57:03
W takim razie, powiedz proszę, co mam zrobić, żeby otworzyć pliki z tego folderu i poddać je obróbce?
trueblue
31.07.2016, 19:01:21
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.