SafeWay
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Код: class thumbnail { var $imgfile; function thumb($imgfile) { if (!file_exists($imgfile)) die ("Cannot read the file!"); //detect image format //$this->img["format"] = ereg_replace(".*\.(.*)$","\\1",$imgfile); $hz = explode(".", $name); $this->img["format"] = $hz[sizeof($hz-1)]; $this->img["format"] = strtoupper($this->img["format"]); if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") { //JPEG $this->img["format"]="JPG"; $this->img["src"] = ImageCreateFromJPEG($imgfile); } elseif ($this->img["format"]=="PNG") { //PNG $this->img["format"]="PNG"; $this->img["src"] = ImageCreateFromPNG($imgfile); } elseif ($this->img["format"]=="GIF") { //GIF $this->img["format"]="GIF"; $this->img["src"] = ImageCreateFromGIF($imgfile); } else { //DEFAULT echo "Not Supported File! Thumbnails can only be made from .gif, .jpg and .png images!"; exit(); } $this->img["lebar"] = imagesx($this->img["src"]); $this->img["tinggi"] = imagesy($this->img["src"]); //default quality jpeg $this->img["quality"]=100; } function size_auto($size=100) { //size if ($this->img["lebar"]>=$this->img["tinggi"]) { $this->img["lebar_thumb"]=$size; $this->img["tinggi_thumb"] = ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"]; } else { $this->img["tinggi_thumb"]=$size; $this->img["lebar_thumb"] = ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"]; } } function jpeg_quality($quality=100) { //jpeg quality $this->img["quality"]=$quality; } function show($gd_version) { Header("Content-Type: image/".$this->img["format"]); if($gd_version==2) { $this->img["des"] = imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]); imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"],$this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]); } if($gd_version==1) { $this->img["des"] = imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]); imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"],$this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]); } if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") { //JPEG imageJPEG($this->img["des"],"",$this->img["quality"]); } elseif ($this->img["format"]=="PNG") { //PNG imagePNG($this->img["des"]); } elseif ($this->img["format"]=="GIF") { //GIF imageGIF($this->img["des"]); } } function save($save="",$gd_version) { if($gd_version==2) { $this->img["des"] = imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]); @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]); } if($gd_version==1) { $this->img["des"] = imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]); @imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]); } if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") { //JPEG imageJPEG($this->img["des"],"$save",$this->img["quality"]); } elseif ($this->img["format"]=="PNG") { //PNG imagePNG($this->img["des"],"$save"); } elseif ($this->img["format"]=="GIF") { //GIF imageGIF($this->img["des"],"$save"); } } function open_save($open, $save, $size, $gd) { $this->thumb($open); $this->size_auto($size); $this->save($save, $gd); } } | Делать превьюшки ) Если надо сохранить копию картинки (уменьшенную, увеличенную), то: $thumbnail = new thumbnail; $thumbnail->open_save('1.jpg', 'copy.jpgf', $size, 2); Где $size = размер полученной картинки. |