Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/10/2012, 08:36
cheterporras2
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 6 meses
Puntos: 2
Pregunta Div redondo e imagen deforme

¡¡¡Hola!!!:
Estoy haciendo pruebas para adaptar un código a mi página y me ha surgido un problemilla. Introduzco un archivo de imagen en el servidor y guardo la ruta en una base de datos (esta imagen pertenece a un determinado usuario), así como su thumbnail (más tarde haré que la foto original se destruya al crear dicha miniatura). En otra página muestro, a través de un div redondo el thumbnail de la imagen. El problema surge porque, las imágenes horizontales se muestran sin apenas distorsión pero, en cambio, las verticales están muy deformes. He leído que una posible solución sería hacer un crop a través de css al thumbnail, pero al intentarlo, sólo he conseguido que se modifique la forma del div o que se borre el efecto redondo de dicho div. ¿Podríais ayudarme a conseguirlo?. O si sabéis otra opción o posible solución a mi problema os lo agredecería mucho.

Código php que introduce el archivo en la bd:
Código PHP:
<?php
include("conexion.php"); $link Conectarse ();
//comprobamos la imagen y la extension
  //array de archivos disponibles
  
$archivos_disp_ar = array('jpg''jpeg''gif''png''tif''tiff''bmp');
  
//carpteta donde vamos a guardar la imagen
  
$carpeta 'imagen/';
  
//recibimos el campo de imagen
  
$imagen $_FILES['imagen']['tmp_name'];
  
//guardamos el nombre original de la imagen en una variable
  
$nombrebre_orig $_FILES['imagen']['name'];
 
  
//el proximo codigo es para ver que extension es la imagen
  
$array_nombre explode('.',$nombrebre_orig);
  
$cuenta_arr_nombre count($array_nombre);
  
$extension strtolower($array_nombre[--$cuenta_arr_nombre]);
   
//validamos la extension
  
if(!in_array($extension$archivos_disp_ar))
 
   
$error "Este tipo de archivo no es permitido"$error_img "error"
  
  if(empty(
$error)){
  
      
//creamos nuevo nombre para que tenga nombre unico
      
$nombre_nuevo time().'_'.rand(0,100).'.'.$extension;
      
//nombre nuevo con la carpeta
      
$nombre_nuevo_con_carpeta $carpeta.$nombre_nuevo;
      
//por fin movemos el archivo a la carpeta de imagenes
      
$mover_archivos move_uploaded_file($imagen $nombre_nuevo_con_carpeta);
      
//de damos permisos 777
      
chmod($nombre_nuevo_con_carpeta,0777);}
      
       
// finalmente guardamos todo
  
  
//CREAR EL THUMB
$original imagecreatefromjpeg($nombre_nuevo_con_carpeta); 
/* Hallamos la anchura y altura de la imagen original */
$ancho imagesx($original);
$alto imagesy($original);
/* Indicamos la anchura que tendrá la miniatura // Originalmente es 100 */
$anchomini=300;
/* Obtenemos por una simple regla de tres la altura de la miniatura */ 
$altomini=($alto*$anchomini)/$ancho;
/*verificamos que los valores de ancho y alto no excedan nuestro limite por imagen*/
    
if($altomini>300){
        
$altomini 300;
        
$anchomini = ($ancho*300)/$alto;
    } 
/* Dimensionamos la miniatura */ 
$thumb imagecreatetruecolor($anchomini,$altomini);
/* Se obtiene por interpolación la miniatura en memoria */ 
imagecopyresampled($thumb,$original,0,0,0,0,$anchomini,$altomini,$ancho,$alto); 
imagejpeg($thumb,"thumb/tn_$nombre_nuevo",90); 
$miThumb="thumb/tn_$nombre_nuevo";

$idusuario mysql_insert_id();
mysql_query("INSERT INTO registro(idusuario,nombre_nuevo_con_carpeta,miThumb)VALUES('{$idusuario}','{$nombre_nuevo_con_carpeta}','{$miThumb}')") or die(mysql_error());

?>
Código que muestra la imagen:
Código PHP:
<?php
// Configura los datos de tu cuenta 
include("conexion.php"); $link Conectarse ();
session_start();



$sql_fotos mysql_query("SELECT * FROM registro WHERE idusuario = '23'");
$res_fotos mysql_fetch_array($sql_fotos);
//realizamos la comprobacion de los datos


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
#apDiv1 {
    position:absolute;
    width:363px;
    height:337px;
    z-index:1;
    left: 17px;
    top: 7px;
    overflow: hidden;
    background-color: #0FC;
}
#muestra {
    border-radius: 156px 153px 151px 151px;
    -moz-border-radius:156px 153px 151px 151px;
    -o-border-radius: 156px 153px 151px 151px;
    -ms-border-radius: 156px 153px 151px 151px;
    -khtml-border-radius: 156px 153px 151px 151px;
    -webkit-border-radius: 156px 153px 151px 151px;
    behavior:url(PIE.htc);
    height: 279px;
    width: 315px;
    position: absolute;
    top: 24px;
    left: 36px;
}
</style>
</head>

<body>

<form id="form1" name="form1" method="post" action="">
<div id="apDiv1">
<?php echo '<img  id=muestra src="'.$res_fotos['miThumb'].'" width="300px" height="280px"></img>'?>
</div>
</form>
</body>
</html>