Código PHP:
function redimensionar($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad, $imagen_encajar){
// crear una imagen desde el original
$datos = getimagesize($img_original);
if($datos[2]==1){$img = @imagecreatefromgif($img_original);}
if($datos[2]==2){$img = @imagecreatefromjpeg($img_original);}
if($datos[2]==3){$img = @imagecreatefrompng($img_original);}
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
$thumb2 = imagecreatefromjpeg($imagen_encajar);
if ($img==""){
//error
}else{
// redimensiona la imagen original copiandola en la imagen
imagecopyresampled($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,imagesx($img),imagesy($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
$anchura = (((imagesx($thumb2))/2)-((imagesx($thumb))/2));
$altura = ((imagesy($thumb2)/2)-(imagesy($thumb)/2));
imagecopy($thumb2,$thumb,$anchura,$altura,0,0,imagesx($thumb),imagesy($thumb));
//imagejpeg($thumb2,$img_nueva,$img_nueva_calidad);
if($datos[2]==1){imagegif($thumb2,$img_nueva,$img_nueva_calidad);}
if($datos[2]==2){imagejpeg($thumb2,$img_nueva,$img_nueva_calidad);}
if($datos[2]==3){imagepng($thumb2,$img_nueva,$img_nueva_calidad);}
imagedestroy($img);
}
}