PHP-Code:
<?php
class imageupload extends fileupload
{
var $prefix;
var $uploadpath;
var $thumbnailwidth;
var $thumbnailheight;
var $allowedextensions;
var $_FILES;
function imageupload($prefix, $inputfield, $uploadpath, $thumbnailwidth, $thumbnailheight)
{
$this->prefix = $prefix;
$this->uploadpath = $uploadpath;
$this->thumbnailwidth = $thumbnailwidth;
$this->thumbnailheight = $thumbnailheight;
$this->allowedextensions = array("jpg", "jpeg", "png");
$this->_FILES = &$_FILES[$inputfield];
}
function doupload($insert_id, $createthumbnail, $copywatermark, $quality="75", $transition="100")
{
$extension = $this->getextension();
if(preg_match("/jpg|jpeg/", $extension)) $newimage = @imagecreatefromjpeg($this->_FILES['tmp_name']);
elseif(preg_match("/png/", $extension)) $newimage = @imagecreatefrompng($this->_FILES['tmp_name']);
if(!$newimage)
{
return FALSE;
}
$imagewidth = imagesx($newimage);
$imageheight = imagesy($newimage);
//--------------------------Erstelt klein bild----------------------------
if($createthumbnail)
{
if(function_exists("imagecreatetruecolor")) $thumbnail = imagecreatetruecolor($this->thumbnailwidth, $this->thumbnailheight);
else $thumbnail = imagecreate($this->thumbnailwidth, $this->thumbnailheight);
if($imagewidth > $imageheight)
{
$thumbnailwidth = $this->thumbnailwidth;
$thumbnailheight = round(($this->thumbnailwidth / $imagewidth) * $imageheight);
if($thumbnailheight < $this->thumbnailheight)
{
$thumbnailwidth = round(($this->thumbnailheight / $thumbnailheight) * $thumbnailwidth);
$thumbnailheight = $this->thumbnailheight;
}
}
else
{
$thumbnailwidth = round(($this->thumbnailheight / $imageheight) * $imagewidth);
$thumbnailheight = $this->thumbnailheight;
if($thumbnailwidth < $this->thumbnailwidth)
{
$thumbnailheight = round(($this->thumbnailwidth / $thumbnailwidth) * $thumbnailheight);
$thumbnailwidth = $this->thumbnailwidth;
}
}
if(function_exists("imagecopyresampled")) imagecopyresampled($thumbnail, $newimage, 0, 0, 0, 0, $thumbnailwidth, $thumbnailheight, $imagewidth, $imageheight);
else imagecopyresized($thumbnail, $newimage, 0, 0, 0, 0, $thumbnailwidth, $thumbnailheight, $imagewidth, $imageheight);
$extension = "jpg"; // überschreibt die datei ändung der erstelten datei in jpg
$thumbnailsavepath = "./".$this->uploadpath."/".$this->prefix.$insert_id.".".$extension; // Dateiname + ändung $extension
if(preg_match("/jpg|jpeg/", $extension)) $check = @imagejpeg($thumbnail, $thumbnailsavepath, $quality);
elseif(preg_match("/png/", $extension)) $check = @imagepng($thumbnail, $thumbnailsavepath, $quality);
imagedestroy($thumbnail);
$newimage = @imagecreatefromjpeg($this->uploadpath."/".$this->prefix.".jpg");
$imagewidth = imagesx($newimage);
$imageheight = imagesy($newimage);
if(!$check)
{
imagedestroy($newimage);
return FALSE;
}
}
//-------------------------Wasserzeichen---------------------------------------------
if($copywatermark)
{
$watermark = imagecreatefrompng("images/watermark.png");
$watermarkwidth = imagesx($watermark);
$watermarkheight = imagesy($watermark);
$transparent = imagecolorat($watermark, 1, 1);
imagecolortransparent($watermark, $transparent);
imagecopymerge($newimage, $watermark, $imagewidth - $watermarkwidth - 3, $imageheight - $watermarkheight - 3, 0, 0, $watermarkwidth, $watermarkheight, $transition);
imagedestroy($watermark);
}
$imagesavepath = "./".$this->uploadpath."/".$this->prefix.$insert_id.".".$extension;
if(preg_match("/jpg|jpeg/", $extension)) $check = @imagejpeg($newimage, $imagesavepath, 100);
elseif(preg_match("/png/", $extension)) $check = @imagepng($newimage, $imagesavepath, 100);
imagedestroy($newimage);
if(!$check)
{
unlink($thumbnailsavepath);
return FALSE;
}
return TRUE;
}
}
?>