Kod
<?php
//Autor: Podgur
class ImageException extends Exception {
public function __toString() {
$ret = 'Powstal blad<br />
Komunikat: '.$this->getMessage().'<br />Plik: '.$this->getFile().'<br />Wiersz: '.$this->getLine();
return $ret;
}
}
class ImageClass
{
public $image;
//konstruktor pobierający obrazek
function __construct($url)
{
//Sprawdzanie czy istnieje plik graficzny podany w konstruktorze
if(!file_exists($url))
{
//W przypadku nie istnienia pliku
throw new ImageException('Podany plik nie istnieje');
}else{
$this->image=$url;
}
}
public function resize($height,$width,$quality=60)
{
//Brak obsługi formatu png i bmp
//Pobranie nazwy pliku
$namefile = $this->image;
//Wycięcie rozszerzenia
$type = substr(strstr($namefile,'.'),1);
//Tablica z formatami
$rozszerzenia=array("jpg","jpeg","gif");
if(!in_array($type,$rozszerzenia))
{
throw new ImageException('Zly format pliku');
}
//Nagłówek
header("Content-Type: image/$type");
switch($type){
//Rozszerzenie *.jpg/jpeg
case "jpg":
$img = imagecreatefromjpeg($this->image);
break;
//Rozszerzenie *.gif
case "gif":
$img = imagecreatefromgif($this->image);
break;
}
$mini = imagecreatetruecolor($width,$height);
//Stworzenie miniatury
imagecopyresized($mini,$img,0,0,0,0,$width,$height,imagesx($img),imagesy($img));
switch($type){
//Rozszerzenie *.jpg/jpeg
case "jpg":
imagejpeg($mini, "mini".rand(1,100)."_$namefile", 70);
break;
//Rozszerzenie *.gif
case "gif":
imagegif($mini, "mini".rand(1,100)."_$namefile", 70);
break;
}
}
}
try
{
//wywolanie obiektu klasy. Jako parametr dajemy scieżke, bądź nazwę pliku
$photo = new ImageClass('a.jpg');
//wywolanie metody resize()
$photo->resize(1000,1000); //Przyjmuje 3 parametry: wysokosc,szerokosc i jakość miniatury
}
catch(ImageException $error)
{
echo $error;
}
?>
Trochę sobie zmodyfikujesz i będzie dobrze.