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:
Hasta la fecha no he tenido problemas, ya que siempre usaba archivos "jpg" para subirlos al servidor.$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);
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