Hola corassón!!! ¿Cómo estás?
Yo liadita con el tema, aunque por fin he encontrado la solución.
Te explico cuál era el problema. Los valores que pisaban eran NECESARIOS ya que no se podían modificar por ser los del div que muestra la imagen e iban encajados en un (puñetero) dibujo de fondo.
Después de buscar, buscar y buscar, leí el tema del crop, creí que eso era factible, ya que, en principio, iba a cortar la imagen, pero de las mil maneras que probré, en todas se modificaban las propiedades del div, no del thumb. Al ser un tema de css, lo incluí aquí junto con el php (el html es sólo un input de archivo y un botón de enviar, por eso no lo vi importante).
Hace 5 minutos, antes de leer tu mensaje, modifiqué el código php, ya que encontré esta página:
http://casamadrugada.net/tutoriales/...y-libreria-gd/ y, finalmente, conseguí lo que estaba buscando.
Este es el código php modificado, adaptadado para sacar el thumbnail de una base de datos y que funciona:
Código PHP:
$miniatura_ancho_maximo = 315;
$miniatura_alto_maximo = 279;
$info_imagen = getimagesize($nombre_nuevo_con_carpeta);
$imagen_ancho = $info_imagen[0];
$imagen_alto = $info_imagen[1];
$imagen_tipo = $info_imagen['mime'];
$proporcion_imagen = $imagen_ancho / $imagen_alto;
$proporcion_miniatura = $miniatura_ancho_maximo / $miniatura_alto_maximo;
if ( $proporcion_imagen > $proporcion_miniatura ){
$miniatura_ancho = $miniatura_alto_maximo * $proporcion_imagen;
$miniatura_alto = $miniatura_alto_maximo;
} else if ( $proporcion_imagen < $proporcion_miniatura ){
$miniatura_ancho = $miniatura_ancho_maximo;
$miniatura_alto = $miniatura_ancho_maximo / $proporcion_imagen;
} else {
$miniatura_ancho = $miniatura_ancho_maximo;
$miniatura_alto = $miniatura_alto_maximo;
}
$x = ( $miniatura_ancho - $miniatura_ancho_maximo ) / 2;
$y = ( $miniatura_alto - $miniatura_alto_maximo ) / 2;
switch ( $imagen_tipo ){
case "image/jpg":
case "image/jpeg":
$imagen = imagecreatefromjpeg( $nombre_nuevo_con_carpeta );
break;
case "image/png":
$imagen = imagecreatefrompng( $nombre_nuevo_con_carpeta );
break;
case "image/gif":
$imagen = imagecreatefromgif( $nombre_nuevo_con_carpeta );
break;
}
$lienzo = imagecreatetruecolor( $miniatura_ancho_maximo, $miniatura_alto_maximo );
$lienzo_temporal = imagecreatetruecolor( $miniatura_ancho, $miniatura_alto );
imagecopyresampled($lienzo_temporal, $imagen, 0, 0, 0, 0, $miniatura_ancho, $miniatura_alto, $imagen_ancho, $imagen_alto);
imagecopy($lienzo, $lienzo_temporal, 0,0, $x, $y, $miniatura_ancho_maximo, $miniatura_alto_maximo);
imagejpeg($lienzo, "thumb/tn_$nombre_nuevo", 90);
$miThumb="thumb/tn_$nombre_nuevo";
Perdón si me he explicado un poco mal y por eso no me habéis podido ayudar. Y, bueno, a la espera de ser trasladada, jejeje. Besinessss furoya. ;)