2012-07-10 10 views

Odpowiedz

3

Poszedłbym na jpeg. Czytaj this post dotyczące zmniejszania rozmiaru obrazu i po podjęciu decyzji o technice, należy ImageMagick

nadzieję, że to pomaga

4

Można zmienić rozmiar, a następnie użyć imagejpeg()

Nie przechodzą 100 jak jakość dla imagejpeg() - coś ponad 90 jest generalnie przesada i po prostu dostaje większy JPEG. W przypadku miniatury spróbuj 75 i pracuj w dół, aż do zaakceptowania kompromisu jakości/rozmiaru.

imagejpeg($tn, $save, 75); 
49

Jeśli chcesz zmniejszyć rozmiar za pomocą samego kodowania, możesz postępować zgodnie z tym kodem w php.

<?php 
function compress($source, $destination, $quality) { 

    $info = getimagesize($source); 

    if ($info['mime'] == 'image/jpeg') 
     $image = imagecreatefromjpeg($source); 

    elseif ($info['mime'] == 'image/gif') 
     $image = imagecreatefromgif($source); 

    elseif ($info['mime'] == 'image/png') 
     $image = imagecreatefrompng($source); 

    imagejpeg($image, $destination, $quality); 

    return $destination; 
} 

$source_img = 'source.jpg'; 
$destination_img = 'destination .jpg'; 

$d = compress($source_img, $destination_img, 90); 
?> 

$d = compress($source_img, $destination_img, 90); 

To tylko funkcja php, który przekazuje obraz źródłowy (tj $source_img), przeznaczenia obrazu ($destination_img) i jakości dla obrazu, który odbędzie się skompresować (czyli 90) .

$info = getimagesize($source); 

Funkcja getimagesize() jest stosowany, aby znaleźć rozmiaru danego pliku obrazu i powrót do wymiarów oraz typ pliku.

+1

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić w nim istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – Joel

+2

Joel! Dziękuję za wzmiankę. Zrobiłem edycję kodu zgodnie z twoją sugestią :) –

+0

Zobacz? Dużo lepiej! Otrzymasz także +1 ode mnie za trud! Pamiętaj: dobre odpowiedzi mogą zająć trochę czasu, ale są warte wysiłku :) – Joel

Powiązane problemy