Scripts
Image class
Image class voor het resizen en uploaden van foto bestanden. Voorbeeld: Uploaden van een image. Voorbeeld: Resizen Upload
image-class
<?php
//class image handler
class image
{
//only for image handlers
var $supportim = array(1,2,3); //1 = gif / 2 = jpg / 3 = png
//check for file realy exists
//$file = file that schould be resized / what ever
function _check_file(){
if(file_exists($this->file)){
//file does realy exists
return true;
}else{
return false;
}
}
//recive image size and check if file is realy a image
function _get_image_size(){
if($this->dimension = getimagesize($this->file)){
//we got a image;
return true;
}else{
return false;
}
}
//check if we got a support for those images
function _check_image_support(){
if(empty($this->dimension)){
//trigger a error;
trigger_error('No file specified please run get_image_size first',E_WARNING_ERROR);
}else{
if(in_array($this->dimension[2],$this->supportim)){
return true;
}else{
return false;
}
}
}
function read_file(){
if($this->dimension[2] == 1){
if(!$this->image_source = imagecreatefromgif($this->file)){
trigger_error('Failed to open a stream',E_USER_WARNING);
return false;
}else{
return true;
}
}elseif($this->dimension[2] == 2){
if(!$this->image_source = imagecreatefromjpeg($this->file)){
trigger_error('Failed to open a stream',E_USER_WARNING);
return false;
}else{
return true;
}
}elseif($this->dimension[2] == 3){
if(!$this->image_source = imagecreatefrompng($this->file)){
trigger_error('Failed to open a stream',E_USER_WARNING);
return false;
}else{
return true;
}
}else{
trigger_error('Filetype is not supported',E_USER_WARNING);
return false;
}
}
//check image support
//output:
//1 = support for resize / flip
//2 = Image but no support: But it is at least a image so avaible to upload.
//3 = No image only upload avialble Please check correct files if you want
//4 = file does not exits;
function check_support(){
if($this->_check_file()){
if($this->_get_image_size()){
if($this->_check_image_support()){
//read file for gd stream;
if($this->read_file()){
return 1;
}
}else{
return 2;
}
}else{
return 3;
}
}else{
return 4;
}
}
//resize image
function resize($width,$height){
if($this->dimension[0] > $this->dimension[1]){
$ratio = $width / $this->dimension[0];
$this->newdimension[0] = $width;
$this->newdimension[1] = round($this->dimension[1] * $ratio);
}else{
$ratio = $height / $this->dimension[0];
$this->newdimension[1] = $height;
$this->newdimension[0] = round($this->dimension[0] * $ratio);
}
//create new image
if(!$this->image = @imagecreatetruecolor($this->newdimension[0],$this->newdimension[1])){
trigger_error('Failed open a new stream',E_USER_WARNING);return false;
}else{
if(!@imagecopyresampled($this->image, $this->image_source, 0, 0, 0, 0, $this->newdimension[0], $this->newdimension[1], $this->dimension[0], $this->dimension[1])){
trigger_error('Failed to resample',E_USER_WARNING);
return false;
}else{
return true;
}
}
}
//give extension
function getextension($bestand)
{
return strtolower(end(explode('.',$bestand)));
}
function getlastdir($bestand)
{
return strtolower(end(explode('/',$bestand)));
}
//create image
function write_file($dir,$file){
if(!file_exists($dir.$file)){
if($this->dimension[2] == 1){
if(@!imagegif($this->image,$dir.$file)){
trigger_error('Failed to write to file',E_USER_WARNING);
return false;
}else{
return true;
}
}elseif($this->dimension[2] == 2){
if(@!imagejpeg($this->image,$dir.$file)){
trigger_error('Failed to write to file',E_USER_WARNING);
return false;
}else{
return true;
}
}elseif($this->dimension[2] == 3){
if(!@imagepng($this->image,$dir.$file)){
trigger_error('Failed to write to file',E_USER_WARNING);
return false;
}else{
return true;
}
}else{
return false;
}
}else{
return false;
}
}
//upload file
function move_uploaded_file($dir,$file){
if(is_uploaded_file($this->file)){
//file is geupload
if(@move_uploaded_file($this->file,$dir.$file)){
return true;
}else{
return false;
trigger_error('Non such file or not enough access',E_USER_WARNING);
}
}else{
trigger_error('File is not uploaded',E_USER_WARNING);
return false;
}
}
function read_dir_array($directory){
if(@$dir = opendir($directory))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(is_file($directory.$file))
{
$extensie = $this->getextension($file);
$extensies = array('png','jpg','jpeg','gif');
if(in_array($extensie,$extensies))
{
$bestanden[] = $file;
}
}
if(is_dir($directory.$file))
{
if($file != 'thumb')
{
$directories[] = $file;
}
}
}
}
closedir($dir);
$files = array();
if(!empty($bestanden)){
$files['images'] = $bestanden;
}
if(!empty($directories)){
$files['dirs'] = $directories;
}
return $files;
}else{
return false;
}
}
}
/*$file = './schipbreukeling/images/msc.png';
$image = new image;
$image->file = $file;
if($image->check_support() == 1){
$image->move_uploaded_file('./','test.png');
}else{
echo 'No support';
}*/
?>
Reacties
0