Sådan:
<?php
//http://www.eksperten.dk/spm/823986
function getExt($filename)
{
return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function watermark( $filename, $newfilename, $watermark='watermark.png', $quality=85 )
{
$ext = getExt( $filename );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$srcim = imagecreatefromjpeg( $filename );
break;
case 'gif':
$srcim = imagecreatefromgif( $filename );
break;
case 'png':
$srcim = imagecreatefrompng( $filename );
break;
default:
return false;
}
$srcw = imagesx($srcim);
$srch = imagesy($srcim);
$wext = getExt( $watermark );
switch($wext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$watim = imagecreatefromjpeg( $watermark );
break;
case 'gif':
$watim = imagecreatefromgif( $watermark );
break;
case 'png':
$watim = imagecreatefrompng( $watermark );
break;
default:
return false;
}
$watw = imagesx($watim);
$wath = imagesy($watim);
if($watw > $srcw || $wath > $srch)
{
return false;
}
$dest_x = $srcw - $watw;
$dest_y = $srch - $wath;
imagecopymerge($srcim, $watim, $dest_x, $dest_y, 0, 0, $watw, $wath, 100 );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg( $srcim, $newfilename, $quality );
break;
case 'gif':
imagegif( $srcim, $newfilename );
break;
case 'png':
$png_q = floor( abs( $quality / 10 - 9.9 ) );
imagepng( $srcim, $newfilename, $png_q );
break;
default:
return false;
}
imagedestroy( $srcim );
imagedestroy( $watim );
return file_exists($newfilename);
}
function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
{
$ext = getExt( $filename );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$srcim = imagecreatefromjpeg( $filename );
break;
case 'gif':
$srcim = imagecreatefromgif( $filename );
break;
case 'png':
$srcim = imagecreatefrompng( $filename );
break;
default:
return false;
}
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = min( $hscale, $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg( $dstim, $newfilename, $quality );
break;
case 'gif':
imagegif( $dstim, $newfilename );
break;
case 'png':
$png_q = floor( abs( $quality / 10 - 9.9 ) );
imagepng( $dstim, $newfilename, $png_q );
break;
default:
return false;
}
imagedestroy( $dstim );
imagedestroy( $srcim );
return file_exists($newfilename);
}
function addText( $filename, $newfilename, $text, $quality=85 )
{
$ext = getExt( $filename );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$srcim = imagecreatefromjpeg( $filename );
break;
case 'gif':
$srcim = imagecreatefromgif( $filename );
break;
case 'png':
$srcim = imagecreatefrompng( $filename );
break;
default:
return false;
}
$srcw = imagesx($srcim);
$srch = imagesy($srcim);
$textcolor = imagecolorallocate($srcim, 0, 0, 255);
imagestring($srcim,3,10,10,$text,$textcolor);
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg( $srcim, $newfilename, $quality );
break;
case 'gif':
imagegif( $srcim, $newfilename );
break;
case 'png':
$png_q = floor( abs( $quality / 10 - 9.9 ) );
imagepng( $srcim, $newfilename, $png_q );
break;
default:
return false;
}
imagedestroy( $srcim );
return file_exists($newfilename);
}
$original_image = '
http://www.codebreaker.dk/valdemar.jpg';$resized_image = 'upload/valdemar_resized.jpg';
$watermarked_image = 'upload/valdemar_watermark.jpg';
$textadded_image = 'upload/valdemar_text.jpg';
echo '<img src="'.$original_image.'" alt="Valdemar Original" /><hr />';
if(resize($original_image,$resized_image,400,400)){
echo '<img src="'.$resized_image.'" alt="Valdemar Resized" /><hr />';
if(watermark($resized_image,$watermarked_image)){
echo '<img src="'.$watermarked_image.'" alt="Valdemar Watermarked" /><hr />';
if(addText($watermarked_image,$textadded_image,date('d-m-Y H:i:s'))){
echo '<img src="'.$textadded_image.'" alt="Valdemar Textadded" /><hr />';
}
}
}
?>