Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmiejszanie dużych zdjęć
Forum PHP.pl > Forum > PHP
projektGraf
Witam
Na samym wstępie chce zaznaczyć że chodzi mi tylko o pomysł.
Mam do zrobienia upload i zmniejszenie 20 zdjęć na raz, problem w tym że pliki do obróbki mają być duże ok. 15 MB jeden plik.
Z wrzuceniem hurtowym na serwer sobie poradziłem poprzez ftp. Pomijam fakt że wrzucenie takich plików trwa kosmicznie długo.

Ale przy zmniejszaniu w pętli for wyczerpuje memory limit który i tak jest już ustawiony na 128 MB.
Myślałem też o takim rozwiązaniu, po wrzuceniu plików do katalogu tmp uruchomić w iframe skrypt który by zmieszał po jednym pliku. Po zmniejszeniu tworzyłby sesje z informacją że plik został zmniejszony, przekazałby poprzez JavaScript informację do okna rodzica, i odświerzył ramkę iframe.

I teraz pytanie jakbyście zmniejszali tak duże pliki graficzne?questionmark.gifquestionmark.gif?

Pozdrawiam


wookieb
A pokaż kod pętli. Czy zmniejszanie 1 zdjęcia też powodu wyczerpanie pamieci?
projektGraf
Nie zmniejszenie jednego zdjęcia nie stwarza problemu, problem przy większej ilości, stąd pomysł na odświerzanie iframe. Chciałem wam wrzucić kod do zmniejszania ale podobno jest za długi.

Spawnm
to daj na wklej.org .
projektGraf
Link do wklei
http://wklej.org/id/162344/?zawin=0

pozdrawiam
zegarek84
szczerze to powinno pomóc ale szczerze tego kodu nie chce mi się przeglądać ;p - skoro jest problem z limitem pamięci to obrazków nie wczytuj do tablicy [tylko nazwy i inne potrzebne minimum po uploadzie] - każde większe zmienne gdy przechodzisz do obrazka daj na nich unset lub zmienna=null; każdy poprzedni obrazek niszcz przez imagedestroy($zmienna_obrazka)....

w dużym skrócie aby zaoszczędzić na pamięci kolejne elementy nie wczytuj do tablicy (możesz ale chodzi mi o skrót myślowy - możesz wrzucać do tablicy ale co niepotrzebne kasuj - jeśli wczytujesz do tablicy to nie wiem jaką masz strukturę) - żeby łatwiej to było zrozumieć zrób pętlę gdzie każdym przypadkiem będziesz zajmował się całkiem osobno - kończąc zadanie dla pewności czyścił wszystkie nowe zmienne....

[edit] skoro na jednym obrazku nie przekraczasz pamięci to skrypt skonstruuj tak, żeby kolejny obrazek był traktowany jak ten jeden - nie przechowuj większych zmiennych jak już pisałem a tylko minimum - zresztom zużyte nazwy obrazków dla ideału zmniejszenia pamięci też możesz skasować ;p
wookieb
Nie usuwasz resourców.
Po kazdej operacji zmniejszenia daj image_destroy
projektGraf
A tak przy okazji, czy da się zrobić pasek postępu do wrzucania kilku plików na ftp?questionmark.gif Jest to możliwe??

Pozdrawiam
wookieb
Za pomocą flash uploadera oczywiście, że tak
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.