Foros del Web » Programando para Internet » PHP »

Codigo funcionando pero falla los archivos png

Estas en el tema de Codigo funcionando pero falla los archivos png en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/07/2012, 13:44
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 22 años, 2 meses
Puntos: 1
Codigo funcionando pero falla los archivos png

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
  #2 (permalink)  
Antiguo 26/07/2012, 14:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Codigo funcionando pero falla los archivos png

investiga sobre las funciones imagealphablending y imagesavealpha, yo las utilicé para crear un generador de sprites, en tal caso las usé así:

$rs_icon = imagecreatetruecolor($sc_width, $sc_height);
imagealphablending($rs_icon, false);
imagesavealpha($rs_icon, true);

saludos y espero te sirva
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 27/07/2012, 00:39
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Codigo funcionando pero falla los archivos png

Muchas gracias "maycolalvarez "...

Funciona perfectamente.

Un saludo:

Javy

Etiquetas: falla, mysql, png, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:22.