Código PHP:
<?php
# Constantes
define(IMAGE_BASE, '');
define(IMAGE_BASE1, '');
define(MAX_WIDTH, 48);
define(MAX_HEIGHT, 48);
# Obtener ubicación de la imagen
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$image_path = IMAGE_BASE.$image_file;
# Cargar la imagen
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = @imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
$img = @imagecreatefrompng($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if ($ext == 'gif') {
$img = @imagecreatefromgif($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if ($ext == 'bmp') {
$img = imagecreatefrombmp($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if ($ext == 'tif') {
$img = imagecreatefromtif($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
# Si una imagen se ha cargado con éxito, prueba la imagen para una vista
if ($img) {
# Obtener tamaño de la imagen y la relación de escala
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
# Si la imagen es mayor que el máximo se encogen
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
# Creamos una nueva imagen temporal
$tmp_img = imagecreatetruecolor($new_width, $new_height);
# copia y redimensiona la vieja imagen en la nueva imagen
imagecopyresampled($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}
# Crear una imagen de error si es necesario
if (!$img) {
# Obtener ubicación de la imagen
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$image_path = IMAGE_BASE1."nophoto.jpg";
# Cargar imagen
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = @imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
$img = @imagecreatefrompng($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
# Si una imagen se ha cargado con éxito, prueba la imagen para una vista
if ($img) {
# Obtener tamaño de la imagen y la relación de escala
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
# Si la imagen es mayor que el máximo se encogen
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
# Creamos una nueva imagen temporal
$tmp_img = imagecreatetruecolor($new_width, $new_height);
# copia y redimensiona la vieja imagen en la nueva imagen
imagecopyresampled($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}
}
# Pantalla de la imagen
if($img)
{
header("Content-type: image/jpeg");
imagejpeg($img);
}
else
{
print "$image_path";
}
?>