#!/usr/bin/php <?php /** * utworzenie miniaturek z plików jpg * * Przykład użycia: * ./jpg2mini katalogZfotkami dluzsza 1024 * * * @param katalog katalog z plikami jpg * @param metoda metoda zmiany rozmiarow obrazka [wysokosc|szerokosc|dluzsza|procent] * @param wartosc wartość parametru dla wybranej metody * * @author Grzegorz 'Kashub [~]o' Szefka * @version 1.2 * @date 2007-08-17 */ ini_set('memory_limit', '512M'); $katalog = $argv[1]; $metoda = $argv[2]; $wartosc = $argv[3]; $pliki = array_merge(glob($katalog . '/*.jpg'), glob($katalog . '/*.JPG')); foreach($pliki as $plik) { $nazwa = substr($plik, 0, -4); $img = imagecreatefromjpeg($plik); list($width, $height) = getimagesize($plik); switch($metoda) { case 'wysokosc' : // metoda pierwsza - wysokość na sztywno, szerokość automagicznie $newheight = $wartosc; $newwidth = round(($width * $newheight) / $height); break; case 'szerokosc' : // metoda druga - szerokość na sztywno, wysokość automagicznie $newwidth = $wartosc; $newheight = round(($height * $newwidth) / $width); break; case 'dluzsza' : // metoda 3. - dluzsza krawedz wg parametru, druga automagicznie if($width>$height) { $newwidth = $wartosc; $newheight = round(($height * $newwidth) / $width); } else { $newheight = $wartosc; $newwidth = round(($width * $newheight) / $height); } break; case 'procent' : // metoda druga - szerokość na sztywno, wysokość automagicznie $newwidth = $wartosc; $newheight = round(($height * $newwidth) / $width); break; default : exit("\n\nPODAJ PRAWIDŁOWE PARAMETRY!\n[wysokosc|szerokosc|dluzsza|procent]\n\n"); break; } $thumb = imagecreatetruecolor($newwidth, $newheight); imagecopyresized($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); echo 'zapis miniaturki ' . $nazwa . "m.jpg' ($newwidth x $newheight)\n"; imagejpeg($thumb, $nazwa . 'm.jpg'); imagedestroy($img); imagedestroy($thumb); //unlink($plik); } ?>