function ImageResize($type,$src,$des,$desx,$desy,$qual) //type = 1 (JPG); 2 (PNG); 2 (GIF)
// Type; Quellpfad, Zielpfad, Zielgröße-X, Zielgröße Y, JPEG Qualität (%)
{
$mw = $desx; // max width
$mh = $desy; // max height
$des.= ".jpg";
if($type === 1) #JPG
{
$src.= ".jpg";
$im = imagecreatefromjpeg( $src );
$ow = imagesx( $im );
$oh = imagesy( $im );
if( $ow > $mw OR $oh > $mh ) { #Wenn Bild vergrößert werden muss
if( $ow > $oh ) { #Wenn Breite größer wie Höhe
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} elseif( $oh > $ow ) {
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} else {
$tnh = $mh;
$tnw = $tnh * $ow / $oh;
}
} else {
$tnw = $ow;
$tnh = $oh;
if( $ow < $mw OR $oh < $mh) {
$tnw = $mw;
$tnh = $mw;
}
}
$imtn = imagecreatetruecolor( $tnw, $tnh );
$originaltransparentcolor = imagecolortransparent( $im );
if(
$originaltransparentcolor >= 0
&& $originaltransparentcolor < imagecolorstotal( $im )
) {
$transparentcolor = imagecolorsforindex( $im, $originaltransparentcolor );
$newtransparentcolor = imagecolorallocate(
$imtn,
$transparentcolor['red'],
$transparentcolor['green'],
$transparentcolor['blue']
);
imagefill( $imtn, 0, 0, $newtransparentcolor );
imagecolortransparent( $imtn, $newtransparentcolor );
}
}
elseif($type === 2) #PNG
{
$src.= ".png";
$im = imagecreatefrompng( $src );
$ow = imagesx( $im );
$oh = imagesy( $im );
if( $ow > $mw OR $oh > $mh ) { #Wenn Bild vergrößert werden muss
if( $ow > $oh ) { #Wenn Breite größer wie Höhe
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} elseif( $oh > $ow ) {
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} else {
$tnh = $mh;
$tnw = $tnh * $ow / $oh;
}
} else {
$tnw = $ow;
$tnh = $oh;
if( $ow < $mw OR $oh < $mh) {
$tnw = $mw;
$tnh = $mw;
}
}
$imtn = imagecreatetruecolor( $tnw, $tnh );
$originaltransparentcolor = imagecolortransparent( $im );
if(
$originaltransparentcolor >= 0
&& $originaltransparentcolor < imagecolorstotal( $im )
) {
$transparentcolor = imagecolorsforindex( $im, $originaltransparentcolor );
$newtransparentcolor = imagecolorallocate(
$imtn,
$transparentcolor['red'],
$transparentcolor['green'],
$transparentcolor['blue']
);
imagefill( $imtn, 0, 0, $newtransparentcolor );
imagecolortransparent( $imtn, $newtransparentcolor );
}
}
elseif($type === 3) #GIF
{
$src.= ".gif";
$im = imagecreatefromgif( $src );
$ow = imagesx( $im );
$oh = imagesy( $im );
if( $ow > $mw OR $oh > $mh ) { #Wenn Bild vergrößert werden muss
if( $ow > $oh ) { #Wenn Breite größer wie Höhe
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} elseif( $oh > $ow ) {
$tnw = $mw;
$tnh = $tnw * $oh / $ow;
} else {
$tnh = $mh;
$tnw = $tnh * $ow / $oh;
}
} else {
$tnw = $ow;
$tnh = $oh;
if( $ow < $mw OR $oh < $mh) {
$tnw = $mw;
$tnh = $mw;
}
}
$imtn = imagecreatetruecolor( $tnw, $tnh );
$originaltransparentcolor = imagecolortransparent( $im );
if(
$originaltransparentcolor >= 0
&& $originaltransparentcolor < imagecolorstotal( $im )
) {
$transparentcolor = imagecolorsforindex( $im, $originaltransparentcolor );
$newtransparentcolor = imagecolorallocate(
$imtn,
$transparentcolor['red'],
$transparentcolor['green'],
$transparentcolor['blue']
);
imagefill( $imtn, 0, 0, $newtransparentcolor );
imagecolortransparent( $imtn, $newtransparentcolor );
}
}
imagecopyresized( $imtn, $im, 0, 0, 0, 0, $tnw, $tnh, $ow, $oh );
imagejpeg($imtn,$des,$qual);
imagedestroy( $im );
imagedestroy( $imtn );
}