Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Kompresja obrazków JPG
Forum PHP.pl > Forum > Przedszkole
ItsMyLife
Witam . Jaki jest najprostszy sposób skompresowania obrazka bez dużej utraty jakości ?. Np dodaję obrazek przez formularz zdjęcie duże 2,5 mb i chce żeby skompresowało do np max 1 mb. Jak to zrobić ?
erix
Pogorszyć jakość albo zmniejszyć wymiary. Ale stopień kompresji musisz eksperymentalnie dobrać.

Bezstratnie tego nie zrobisz.
croc
Dla mnie takim optimum dla zdjęć w JPG jest jakość 80-85. Znacznie zmniejsza rozmiar, a jakość jest akceptowalna.

Aha, a jeśli pytasz jak to zrobić w PHP:

  1. $source = imagecreatefromjpeg($_FILES['przeslanyPlik']['tmp_name']);
  2. imagejpeg($source, 'skompresowaneZdjecie.jpg', 85);
tehaha
no a potrzebujesz te obrazki w takiej dużej rozdzielczości? może wystarczy Ci samo przeskalowanie do mniejszych wymiarów
ItsMyLife
Największy będę miał w 1920x1200. Jest gdzieś jakiś tutorial jak zmieniać rozmiary obrazków i je kompresować ?
croc
http://lmgtfy.com/?q=php+image+resize
thek
Jeśli chodzi o stopień kompresji, to w większości przypadków ludzie nie widzą różnicy dla kompresji powyżej stopnia 75. Musiałyby być bardzo bogate przejścia tonalne czy znaczące kontrasty. Oczywiście im większa rozdzielczość tym wartość powinna być większa. Takie miniaturki choćby puścisz nawet na 40 i ludzie nie zobaczą nic.. No Chyba że z lupą winksmiley.jpg Dla podanej przez Ciebie 80-85 powinno być dość dobrym rozwiązaniem. Zapewne jednak nie zauważysz różnicy po obniżeniu do 75. Przetestuj sobie sam i zapewne zgodzisz się ze mną.
croc
Na 40 nic nie zobaczą? Przecież miniatura z kompresją 40 to małe okienko z plamami.
thek
Zależy jak duża miniaturka. Ja często mam styczność z wielkościami miniatur nieco większymi niż ikona, przykładowo 64px x 48px smile.gif Powiedz mi czy jest sens pchać tam kompresję rzędu 85? Ogólnie jak już wspomniałem, im większa rozdzielczość, tym wyższa liczba przy stopniu kompresji, ale 80-85 to już wartości graniczne. Nawet w aparatach cyfrowych nie ma kompresji rzędu 100, ale jest maksymalnie 90-95, bo inaczej zdjęcia miałyby za duży rozmiar przy rozdzielczościach jakie są uzyskiwane.
croc
Każdy ma inne oko i pojęcie jakości. Dla takich maleństw 75 by przeszło, ale mniej już nie wg mnie.
thek
Dla tych najmniejszych co podałem, schodzę do 55 i bez problemu wszystko widać smile.gif Tyle, że przy takiej rozdzielczości różnice są rzędu ułamków kilobajta i można to czasem porównać do "sztuki dla sztuki". Tak naprawdę wystarczy zejść do około 3-4kB. Czemu? Bo często rozmiar klastra HDD to właśnie 4kB, a kto uczył się informatyki nieco więcej, ten wie co się z tym wiąże.
croc
Ale dla ciebie "wszystko widać" = "jest w porządku"? blinksmiley.gif Bo dla mnie to jakość mojego avatara skompresowanego przez forum jest już np. nie do przyjęcia.
thek
Jakość grafiki to sprawa moim zdaniem subiektywna. To nad czym jeden będzie się zachwycał inny uzna mało czytelne, bez antyaliasingu, rozmyte czy co tak wymyśli. Miniatury zresztą nie są od podziwiania. Są tylko pobieżnym spojrzeniem na ewentualny oryginał. Przecież może on zawierać coś kompletnie Cię nie interesującego, więc nie będziesz miał ochoty w oryginale go obejrzeć. Stąd miniatury nie muszą być super jakościowo. Taki powinien być oryginał. Dlatego jeśli już ktoś chce i zależy mu na jakości to wiadomo, że nie użyje jpg tylko png z wiadomych przyczyn. Jeśli jednak transfer jest ważny - obniży jakość w jpg. Tu nie ma co dywagować tylko stosować odpowiedni format pliku w konkretnej sytuacji smile.gif
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.