Hola a todos de nuevo:
Soy Javy.
Hace unos dos o tres años, conseguí (a base de "cachos de código") crear este código para subir imágenes a un servidor y redimensionarlas.
Código:
$sql = "SELECT * FROM rotvinilosimg WHERE rotvinilosimgid=".$_GET['rotvinilosimgid'];
$res = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($res) >0){
while ($imagen = mysql_fetch_array($res)) {
// BUSCANDO INFORMACIÓN DE LA IMAGEN
$tipoimagen = GetImageSize($imagen[rotvinilosimgfoto]);
// CARGANDO EN MEMORIA LA IMAGEN A REDIMENSIONAR
if($tipoimagen[2]==1){$imagen_original = @imagecreatefromgif($imagen[rotvinilosimgfoto]);}
if($tipoimagen[2]==2){$imagen_original = @imagecreatefromjpeg($imagen[rotvinilosimgfoto]);}
if($tipoimagen[2]==3){$imagen_original = @imagecreatefrompng($imagen[rotvinilosimgfoto]);}
// OBTENIENDO EL ANCHO DE LA IMAGEN
$ancho_original = imagesx($imagen_original);
// OBTENIENDO EL ALTO DE LA IMAGEN
$alto_original = imagesy($imagen_original);
// SI SE QUIERE UN ANCHO FINAL FIJO, SE CALCULA EL ALTO DE FORMA PROPORCIONADA
$ancho_final = 600;
// ANCHO FINAL EN PIXELES
$alto_final = ($ancho_final / $ancho_original) * $alto_original;
// SI SE CONOCE EL ALTO FINAL FIJO, SE CALCULA EL ANCHO DE FORMA PROPORCIONADA
// PARA ESO, COMENTAR LAS DOS LÍNEAS ANTERIORES Y DESCOMENTAR LAS DOS SIGUIENTES:
/*$alto_final = 250; //Alto final en pixeles
$ancho_final = ($alto_final / $alto_original) * $ancho_original;*/
// SE CREA UNA IMAGEN VACÍA EN BLANCO, CON EL ALTO Y EL ANCHO QUE TENDRÁ LA IMAGEN REDIMENSIONADA
$imagen_redimensionada = imagecreatetruecolor($ancho_final, $alto_final);
// SE COPIA LA IMAGEN ORIGINAL, CON LAS NUEVAS DIMENSIONES, A LA IMAGEN EN BLANCO ANTERIOR
imagecopyresampled($imagen_redimensionada, $imagen_original, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho_original, $alto_original);
// SE GUARDA LA IMAGEN REDIMENSIONADA. SI SE GUARDA EN EL MISMO SITIO Y CON EL MISMO NOMBRE, SOBRESSCRIBIRÁ LA ORIGINAL
if($tipoimagen[2]==1){imagegif($imagen_redimensionada, $imagen[rotvinilosimgfoto]);}
if($tipoimagen[2]==2){imagejpeg($imagen_redimensionada, $imagen[rotvinilosimgfoto]);}
if($tipoimagen[2]==3){imagepng($imagen_redimensionada, $imagen[rotvinilosimgfoto]); }
// SE LIBERAN RECURSOS, DESTRUYENDO LAS IMÁGENES QUE ESTABAN EN MEMORIA
imagedestroy($imagen_original);
imagedestroy($imagen_redimensionada);
Hasta la fecha no he tenido problemas, ya que siempre usaba archivos "jpg" para subirlos al servidor.
Ahora tengo que subir archivos "png" y lo hace todo bién menos respetar la transparencia.
He buscado por el foro y con las diferentes respuestas que he encontrado he modificado el código pero no he conseguido nada.
He revisado el servidor y tiene activada la librería GD y la versión de PHP es la 5.2.17.
¿Me podeis echar un cable, por favor?
Gracias de antemano y un saludo:
Javy