Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con libreria grafica GD

Estas en el tema de problemas con libreria grafica GD en el foro de PHP en Foros del Web. hola foreros, estoy trabajando con imagenes y la libreria GD pero no lo me muestra la imagen redimensionada, llevo un par de dias repasando el ...
  #1 (permalink)  
Antiguo 16/05/2018, 12:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 292
Antigüedad: 10 años, 10 meses
Puntos: 2
Pregunta problemas con libreria grafica GD

hola foreros,

estoy trabajando con imagenes y la libreria GD pero no lo me muestra la imagen redimensionada, llevo un par de dias repasando el codigo pero no veo donde esta el error ¿me echais una mano?

Aqui os dejo el codigo principal y la clase que he creado para reducir la imagen con GD:
Código PHP:
Ver original
  1. <body>
  2. <form action="imagen.php" method="POST" enctype="multipart/form-data">
  3. Elige un archivo de imagen jpg: <input type="file"
  4. name="fichero">
  5. <input type="submit" name="Enviar" value="Enviar">
  6. </form>
  7. <?php
  8. if (isset($_FILES["fichero"] ) ) {
  9. echo "Imagen Original:<br>";
  10. $fotografia = $_FILES['fichero']['tmp_name'];
  11. copy($fotografia,$_FILES['fichero'] ['name']);
  12.  
  13. $foto_copia = $_FILES["fichero"]["name"] . "&modo=original";
  14. $url = "claseIMG.php?fotografia=$foto_copia";
  15. echo "<img src=\"$url\">";
  16.  
  17. echo "Imagen Miniatura:<br>" ;
  18. $foto_copia = $_FILES["fichero"]["name"] . "&modo=miniatura";
  19. $url = "claseIMG.php?fotografia=$foto_copia";
  20. echo "<img src=\"$url\">";
  21. }
  22. ?>
  23. </body>

Y esta es la clase que utilizo para trabajar con las imagenes:
Código PHP:
Ver original
  1. class imagen {
  2. private $archivo;
  3. private $imagen;
  4. private $miniatura;
  5. private $dimensiones;
  6. function _construct($archivo) {
  7.     $this->archivo = $archivo;
  8.     $this->imagen = imagecreatefromjpeg($archivo);
  9.     $this->dimensiones = getimagesize($archivo);
  10. }
  11. public function imagen_original() {
  12.     header("Content-Type: image/jpeg");
  13.     imagejpeg($this->imagen);
  14. }
  15. public function imagen_miniatura() {
  16.     $dimensionx = $this->dimensiones[0] /2;
  17.     $dimensiony = $this->dimensiones[1] /2;
  18.     $this->miniatura = imagecreatetruecolor($dimensionx, $dimensiony);
  19.     imagecopyresampled($this->miniatura, $this->imagen,0, 0, 0, 0, $dimensionx, $dimensiony, $this->dimensiones[0], $this->dimensiones[1]);
  20.     header("Content-Type: image/jpeg");
  21. echo "$dimensionx X $dimensiony px<BR>";
  22.     imagejpeg($tnis->miniatura);
  23. }
  24. } //fin class
  25. $fotografia = new imagen($_GET["fotografia"]);
  26. if ($_GET["modo"]=="original")
  27.     $fotografia->imagen_original();
  28. if ($_GET["modo"]=="miniatura")
  29.     $fotografia->imagen_miniatura();

He conseguido mostrar la imagen original pero no consigo mostrar la imagen reducida y por mas que repaso el codigo no doy con el error :( , ¿alguien me puede ayudar a localizar(y solucionar) el error?

Gracias, saludos:D
__________________
1os pasaos con xAMP en Windows
programando en PERL
  #2 (permalink)  
Antiguo 16/05/2018, 20:17
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 316
Antigüedad: 9 años, 8 meses
Puntos: 27
Respuesta: problemas con libreria grafica GD

no se si fue mal tipeo en el post pero

Código PHP:
Ver original
  1. imagejpeg($tnis->miniatura);

deberia ser

Código PHP:
Ver original
  1. imagejpeg($this->miniatura);
__________________
Asunción Paraguay
Licenciado - Desarrollador Web - Gerente Desarrollo TI (BEPSA)
Espacio Geek - Comunidad Tecnologica
  #3 (permalink)  
Antiguo 16/05/2018, 20:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.958
Antigüedad: 5 años, 3 meses
Puntos: 371
Respuesta: problemas con libreria grafica GD

por que no usas http://image.intervention.io/ ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 16/05/2018, 20:30
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 316
Antigüedad: 9 años, 8 meses
Puntos: 27
Respuesta: problemas con libreria grafica GD

Probe tu codigo y no pude hacer funcionar, entonces modifique para que funcione..

imagen.php

Código PHP:
Ver original
  1. <body>
  2. <form action="imagen.php" method="POST" enctype="multipart/form-data">
  3. Elige un archivo de imagen jpg: <input type="file"
  4. name="fichero">
  5. <input type="submit" name="Enviar" value="Enviar">
  6. </form>
  7. <?php
  8. if (isset($_FILES["fichero"] ) ) {
  9. echo "Imagen Original:<br>";
  10. $fotografia = $_FILES['fichero']['tmp_name'];
  11. copy($fotografia,$_FILES['fichero'] ['name']);
  12.  
  13. $foto_copia = $_FILES["fichero"]["name"] . "&modo=original";
  14. $url = "claseIMG.php?fotografia=$foto_copia";
  15. echo "<img src=\"$url\">";
  16. echo '<br />';
  17. echo "Imagen Miniatura:<br>" ;
  18. $foto_copia = $_FILES["fichero"]["name"] . "&modo=miniatura";
  19. $url = "claseIMG.php?fotografia=$foto_copia";
  20. echo "<img src=\"$url\">";
  21. }
  22. ?>
  23. </body>

simplemente le agregue un <br/> en la palabra de Imagen miniatura

claseIMG.php

Código PHP:
Ver original
  1. <?php
  2. class imagen {
  3. private $archivo;
  4. private $imagen;
  5. private $miniatura;
  6. private $dimensiones;
  7. function _construct() {}
  8. public function imagen_original($imagen) {
  9.     header("Content-Type: image/jpeg");
  10.     $imagen_creada = imagecreatefromjpeg($imagen);
  11.     imagejpeg($imagen_creada);
  12. }
  13. public function imagen_miniatura($archivo) {
  14.     $dimensiones = getimagesize($archivo);
  15.     $dimensionx = $dimensiones[0] /2;
  16.     $dimensiony = $dimensiones[1] /2;
  17.     $imagen = imagecreatefromjpeg($archivo);
  18.     $miniatura = imagecreatetruecolor($dimensionx, $dimensiony);
  19.     imagecopyresampled($miniatura, $imagen,0, 0, 0, 0, $dimensionx, $dimensiony, $dimensiones[0], $dimensiones[1]);
  20.     header("Content-Type: image/jpeg");
  21.     imagejpeg($miniatura);
  22. }
  23. } //fin class
  24. $fotografia = new imagen();
  25. if ($_GET["modo"]=="original")
  26.     $fotografia->imagen_original($_GET['fotografia']);
  27. if ($_GET["modo"]=="miniatura")
  28.     $fotografia->imagen_miniatura($_GET['fotografia']);
  29. ?>
__________________
Asunción Paraguay
Licenciado - Desarrollador Web - Gerente Desarrollo TI (BEPSA)
Espacio Geek - Comunidad Tecnologica
  #5 (permalink)  
Antiguo 17/05/2018, 05:43
 
Fecha de Ingreso: diciembre-2007
Mensajes: 292
Antigüedad: 10 años, 10 meses
Puntos: 2
De acuerdo Respuesta: problemas con libreria grafica GD

Gracias @vicram10. tu "nueva" clase me funciono perfectamente
__________________
1os pasaos con xAMP en Windows
programando en PERL
  #6 (permalink)  
Antiguo 17/05/2018, 16:22
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 316
Antigüedad: 9 años, 8 meses
Puntos: 27
Respuesta: problemas con libreria grafica GD

Cita:
Iniciado por alfa18 Ver Mensaje
Gracias @vicram10. tu "nueva" clase me funciono perfectamente
de nada para eso estamos
__________________
Asunción Paraguay
Licenciado - Desarrollador Web - Gerente Desarrollo TI (BEPSA)
Espacio Geek - Comunidad Tecnologica



La zona horaria es GMT -6. Ahora son las 00:29.