Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Gestor de imágenes en php

Estas en el tema de Gestor de imágenes en php en el foro de PHP en Foros del Web. Hola a todos, este es mi primer post, después de leer mucho en este foro y aprender, quiero compartir con ustedes mi código, se trata ...
  #1 (permalink)  
Antiguo 10/07/2013, 12:46
 
Fecha de Ingreso: julio-2013
Ubicación: Paraguay
Mensajes: 71
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Gestor de imágenes en php

Hola a todos, este es mi primer post, después de leer mucho en este foro y aprender, quiero compartir con ustedes mi código, se trata de un pequeño sistema el cual sirve para enviar subir fotos por los usuarios, guardar los datos en una base de datos y ponerle una marca de agua, la última no me esta funcionando, es por eso que estoy recurriendo al conocimiento colectivo de este foro. He aquí el código (acepto todas las sugerencias para mejorarlo).

Archivo enviar.php

Código:
<?php

// Base de datos
// Definimos la variable y realizamos la conexión con la base de datos:
$conexion = mysql_connect('localhost', 'root', '') or die('Error al conectar con la base de datos.');

// Definimos la variable y seleccionamos la base de datos a ser utilizada:
$basededatos = mysql_select_db('galeria', $conexion) or die('La base de datos seleccionada no existe.');

// Foto
// Definimos las variables de la foto:
$nombre = $_FILES['foto']['name'];
$rutatemporal = $_FILES['foto']['tmp_name'];
$directorio = 'fotos';
$rutadestino = $directorio . '/' . $nombre;

// Movemos la foto a la carpeta de destino:
move_uploaded_file($rutatemporal, $rutadestino);

// Marca de agua
// Definimos las variables de la marcade agua:
$rutamarcadeagua = 'imagenes/marca_de_agua.png';
$marcadeagua = imagecreatefrompng($rutamarcadeagua);
$rutafoto = $directorio . '/' . $nombre;
$foto = imagecreatefromjpeg($rutafoto);
$tamanofoto = getimagesize($rutafoto);
$tamanomarca = getimagesize($rutamarcadeagua);
$destino_x = $tamanofoto[0] - $tamanomarca[0] - 10; 
$destino_y = $tamanofoto[1] - $tamanomarca[1] - 10;
imagecopymerge($foto, $marcadeagua, $destino_x, $destino_y, 0, 0,$tamanomarca[0], $tamanomarca[1], 100);
imagedestroy($foto);
imagedestroy($marcadeagua);

$correo_electronico = $_POST['correo_electronico'];
$sql = "INSERT INTO fotos (ruta,correo_electronico) values('" . $rutadestino . "','" . $correo_electronico . "')";
$respuesta = mysql_query($sql, $conexion);
if ($respuesta) {
    echo 'La foto ha sido enviada correctamente.';
} else {
    echo 'Error al enviar la foto.';
}
?>
  #2 (permalink)  
Antiguo 10/07/2013, 12:51
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Gestor de imágenes en php

puede que si funcione, pero en ningún momento guardas el resultado de la imagen , es decir, que necesitas sobreescribir la imagen original, de lo contrario los cambios aplicados por GD quedarán en memoria
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/07/2013, 13:08
 
Fecha de Ingreso: julio-2013
Ubicación: Paraguay
Mensajes: 71
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Gestor de imágenes en php

Podrías indicarme como? por favor, estoy aprendiendo todo esto y tu orientacion seria de gran ayuda.
  #4 (permalink)  
Antiguo 10/07/2013, 13:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Gestor de imágenes en php

Dependiendo del tipo de archivo necesitarías usar imagejpg, imagegif o imagepng para ello, primero necesitas analizar el tipo de imagen, y posteriormente aplicar la función correcta que lo que hace es almacenar el resultado al archivo.

Saludos.
  #5 (permalink)  
Antiguo 10/07/2013, 13:36
 
Fecha de Ingreso: julio-2013
Ubicación: Paraguay
Mensajes: 71
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Gestor de imágenes en php

Entonces quedaría asi?

Código PHP:
Ver original
  1. imagejpeg($rutadestino,$foto);
  #6 (permalink)  
Antiguo 10/07/2013, 13:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Gestor de imágenes en php

Los argumentos están mal pero sí así la tienes que mandar llamar, el primer parámetro es tu recurso GD creado por el imagecreatefrom*, y el segundo es el archivo destino donde se va a almacenar el resultado (en este caso la imagen).

Saludos.
  #7 (permalink)  
Antiguo 10/07/2013, 13:45
 
Fecha de Ingreso: julio-2013
Ubicación: Paraguay
Mensajes: 71
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Gestor de imágenes en php

Muchas gracias, pude solucionar mi problema añadiendo el siguiente codigo:

Código PHP:
Ver original
  1. imagejpeg($foto,$rutafoto,75);

Etiquetas: gestor, mysql, select, sql, usuarios, variable, variables
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 02:48.