Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Diabliyo en 5 Enero 2010, 21:00 pm



Título: imagecreatefromjpeg() de una mejor calidad ?
Publicado por: Diabliyo en 5 Enero 2010, 21:00 pm
Hola:

Tengo una imagen ya generada que llamo "mianuncio.jpeg", pero por cuestiones de visualizacion (dependiendo el width y height), la imagen quiero que se muestre segun sea, para esto cree varias dimenciones definidas, me cree un codigo PHP al cual le paso una variable y este invoca cerateimagefromjpeg(), en donde segun sea el width y height, elige la imagen:

Ejemplo: anuncios.php?size=160x600

En el codigo elige la imagen de 160x600, la mete a una variable, despues invoco la funcion imageceratefromjpeg( variable ), muestro la imagen, destruyo la variable y listo..

El Problema es que la imagen que se genera con imagecreatefromjpeg() tiene una calidad baja :S... Y la original (que es del mismo tamano) tiene una mejor calidad.

Código
  1. header('Content-Type: image/jpeg');
  2.  
  3. $sz= proteger_cadena($_GET["size"]);
  4.  
  5. if( !strcmp($sz, "160x600") )
  6. $sz= "anuncio_160x600.jpg";
  7. else if( !strcmp($sz, "468x60") )
  8. $sz= "anuncio_468x60.jpg";
  9. else if( !strcmp($sz, "120x600") )
  10. $sz= "anuncio_120x600.jpg";
  11. else
  12. $sz= "anuncio_120x600.jpg";
  13.  
  14. $img= imagecreatefromjpeg($sz);
  15.  
  16. imagejpeg($img);
  17. imagedestroy($img);


Título: Re: imagecreatefromjpeg() de una mejor calidad ?
Publicado por: ~ Yoya ~ en 6 Enero 2010, 15:11 pm
ps, yo provaria de otras formas, tambien puede hacerlo con break y llamar la img.

Ps un poco al tema, imagejpeg
http://www.php-es.com/function.imagejpeg.html
Nota: JPEG support is only available if PHP was compiled against GD-1.8 or later.


Título: Re: imagecreatefromjpeg() de una mejor calidad ?
Publicado por: Diabliyo en 6 Enero 2010, 15:27 pm
ps, yo provaria de otras formas, tambien puede hacerlo con break y llamar la img.

Ps un poco al tema, imagejpeg
http://www.php-es.com/function.imagejpeg.html
Nota: JPEG support is only available if PHP was compiled against GD-1.8 or later.

Hola:

Gracias, la solucion fue incluir los parametros dentro de imagejpeg() indicando calidad a 100%:

Código
  1. imagejpeg( $img, NULL, 100);

bye


Título: Re: imagecreatefromjpeg() de una mejor calidad ?
Publicado por: дٳŦ٭ en 8 Enero 2010, 21:56 pm
Imagemagic  ;), te sorprenderá.


Título: Re: imagecreatefromjpeg() de una mejor calidad ?
Publicado por: WHK en 9 Enero 2010, 20:30 pm
El problema es que imagemagic debes instalarlo y si no tienes un servidor dedicado es muy poco probable que lo tengan.

De todas formas yo optaría por dar un buffer de salida en png en ves de jpg para no perder la calidad.