Mira a ver si esto te sirve. Un saludo.
Código PHP:
// genera un identificador de imagen a partir de un fichero de imagen
// Devuelve el identificador o false en caso de error
function imagecreatefromfile($imagefile)
{
// variable resultado
$resultado = false;
// Obtener extensión del archivo
$dot = (strlen($imagefile) - strrpos($imagefile, ".")-1)*(-1);
$ext = substr($imagefile, $dot);
$ext = strtolower($ext);
// Chequear que las imágenes sean de alguno de los formatos soportados. Por medio de la función strtolower(), pasamos la extensión a minúsculas
if( $ext == "gif") {
if ($src_img = imagecreatefromgif($imagefile)) {
$resultado = $src_img;
}
} else if( $ext == "jpg" || $ext == "jpeg") {
if ($src_img = imagecreatefromjpeg($imagefile)) {
$resultado = $src_img;
}
} else if( $ext == "png") {
if ($src_img = imagecreatefrompng($imagefile)) {
$resultado = $src_img;
}
} else if( $ext == "jpg" || $ext == "jpeg") {
if ($src_img = imagecreatefromjpeg($imagefile)) {
$resultado = $src_img;
}
}
return $resultado;
}
// genera una imagen thumbnail a partir de otra
function generate_thumbnail($imagefile, $ancho, $calidad = 100)
{
// leemos el fichero de la imagen
if( ($src_img = imagecreatefromfile($imagefile)) == false )
{
exit;
}
else
{
$hw = getimagesize($imagefile);
// $ancho es el ancho para la nueva imágen
$new_w = $ancho;
// A través del cociente entre el alto y el cociente entre la anchura original y la anchura nueva, mantenemos las proporciones de la imágen
$new_h = $hw["0"]/($hw["1"]/$ancho);
// Intentamos crear una imágen 'true color'. Esta función es soportada a partir de GD 2.0, por lo que en caso de no funcionar, se usará la función imageCreate
$dst_img = @imagecreatetruecolor($new_h, $new_w);
if(!$dst_img) {
$dst_img = imageCreate($new_h, $new_w);
}
// Se crea la imágen con los valores obtenidos y borramos las imágenes de la memoria
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_h,$new_w,imagesx($src_img),imagesy($src_img));
imagejpeg($dst_img,"", $calidad);
ImageDestroy($src_img);
ImageDestroy($dst_img);
}
}
$file = "ace3.jpg";
//echo("<img src=\"$file\" height=\"300\" width=\"200\"/>");
header("Content-type: image/jpeg");
generate_thumbnail($file, 100);