02/06/2011, 10:02
|
| | | Fecha de Ingreso: enero-2011 Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 14 años Puntos: 209 | |
Respuesta: redimensionar imagen externa y guardarla en la BD stramin esta es mi funcion
me dices que en $tmpName le pase la url de la foto ????
es así ????
function Redimensionar($ancho_destino, $alto_destino, $tmpName, $fileType){
$tempImagen = 'tempImagen';
// Mime types permitidos
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Verificamos si el archivo es una imagen válida
if(!in_array($fileType, $mimetypes)){
$message = "El archivo que subiste no es una imagen valida: $tmpName";
die ($message);
}
switch($fileType) {
case $mimetypes[0]:
case $mimetypes[1]:
$img = imagecreatefromjpeg($tmpName);
break;
case $mimetypes[2]:
$img = imagecreatefromgif($tmpName);
break;
case $mimetypes[3]:
$img = imagecreatefrompng($tmpName);
break;
}
// Tomamos los datos de ancho y alto de la foto para redimensionarla -- Esta función crea un array con dos índices. El indice [0] corresponde al ancho, y el índice [1] al alto.
$datos = getimagesize($tmpName);
// Redimensionamos la imagen
if($datos[0] > $datos[1]){
// Si es horizontal
$ratio = ($datos[0]/$ancho_destino);
$alto = round($datos[1]/$ratio);
$imagen = imagecreatetruecolor($ancho_destino, $alto);
imagecopyresampled($imagen, $img, 0, 0, 0, 0, $ancho_destino, $alto, $datos[0], $datos[1]);
} elseif($datos[0] < $datos[1] || $datos[0] == $datos[1]){
// Si es vertical o cuadrada.
$ratio = ($datos[1]/$alto_destino);
$ancho = round($datos[0]/$ratio);
$imagen = imagecreatetruecolor($ancho, $alto_destino);
imagecopyresampled($imagen, $img, 0, 0, 0, 0, $ancho, $alto_destino, $datos[0], $datos[1]);
}
switch($fileType){
case $mimetypes[0]:
case $mimetypes[1]:
imagejpeg($imagen, $tempImagen);
break;
case $mimetypes[2]:
imagegif($imagen, $tempImagen);
break;
case $mimetypes[3]:
imagepng($imagen, $tempImagen);
break;
}
$fp = fopen($tempImagen, "rb");
$timagen = fread($fp, filesize($tempImagen));
$timagen = addslashes($timagen);
fclose($fp);
@unlink($tempImagen);
return $timagen;
} |