Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/12/2008, 15:42
Avatar de kimmy
kimmy
 
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Redimensionar y guardar

Ahora lo hice así:

<?
$conexion = db_connect();
if (!$conexion)
return 0;

$archivo = explode('.', stripslashes($_FILES['foto']['name']));
unset($archivo[count($archivo)-1]);
$archivo = implode('.', $archivo);

$tamano=getimagesize($archivo);
$orig_Ancho = $tamano[0];
$orig_Alto =$tamano[1];

# estableceremos un margen en blanco alrededor de la imagen de 5 pixels
# igual por los cuatro lados
$margen=10;

# establecemos rocortes para reencuadrar la imagen
$recorte_izq=50;
$recorte_sup=80;
$recorte_der=40;
$recorte_inf=60;

# calculamos las dimensiones para utilizar como parámetros
# en la funcion imagecopyresampled

# ancho y alto original recortado
$Ancho_recortado=$orig_Ancho-$recorte_izq-$recorte_der;
$Alto_recortado=$orig_Alto-$recorte_sup-$recorte_inf;

# factores de ampliación en este caso iguales
# sin distorsión de imagen
$ampliacion_X=1;
$ampliacion_Y=1;
# dimensiones del soporte
$papel_Ancho=$Ancho_recortado*$ampliacion_X+ 2*$margen;
$papel_Alto=$Alto_recortado*$ampliacion_Y+2*$marge n;
# dimensiones de la mancha de imagen al positivar
# hay que quitar los márgenes
$resultado_Ancho=$papel_Ancho -2*$margen;
$resultado_Alto=$papel_Alto -2*$margen;
switch($tipo){
case "jpg":
$importada=imagecreatefromjpeg($original);
break;
case "png":
$importada=imagecreatefrompng($original);
break;
case "gif":
$importada=imagecreatefromgif($original);
break;
}
Header("Content-type:image/jpeg");
$im_base=imagecreatetruecolor($papel_Ancho,$papel_ Alto);
$fondo=imagecolorAllocate($im_base,255,255,200);
imagefill($im_base,0,0,$fondo);
imagecopyresampled($im_base,$importada,$margen,$ma rgen,
$recorte_izq,$recorte_sup,
$resultado_Ancho,$resultado_Alto,
$Ancho_recortado,$Alto_recortado);
imagejpeg($im_base);
ImageDestroy();

//Insercion de los datos, ojo la imagen se graba con su nombre original en la tabla (es un campo varchar)
$sql_ins = "INSERT INTO cosas (fecha, id, nombre, description, ave) " .
"VALUES ('$fecha', '$id', '$nombre', '$descripcion', '$archivo')";
$res = mysql_query($sql_ins) or die ( "Error MySQL dice: " . mysql_error() );
$nuevo_nombre = $_FILES['foto']['name'];
move_uploaded_file($_FILES['foto']['tmp_name'], "images/$nuevo_nombre");
?>

Y me arroja estos errores:

Warning: getimagesize(BARBIE) [function.getimagesize]: failed to open stream: No such file or directory in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\phpMyAdmin\probar\subir.php :32) in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 75

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 76

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 77

Warning: imagefill(): supplied argument is not a valid Image resource in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 78

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 82

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 83

Warning: Wrong parameter count for imagedestroy() in C:\AppServ\www\phpMyAdmin\probar\subir.php on line 84