imagecreatefromjpeg() de una mejor calidad ?

Iniciado por Diabliyo, 5 Enero 2010, 21:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

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 (php) [Seleccionar]
header('Content-Type: image/jpeg');

$sz= proteger_cadena($_GET["size"]);

if( !strcmp($sz, "160x600") )
$sz= "anuncio_160x600.jpg";
else if( !strcmp($sz, "468x60") )
$sz= "anuncio_468x60.jpg";
else if( !strcmp($sz, "120x600") )
$sz= "anuncio_120x600.jpg";
else
$sz= "anuncio_120x600.jpg";

$img= imagecreatefromjpeg($sz);

imagejpeg($img);
imagedestroy($img);

~ Yoya ~

#1
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.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Diabliyo

Cita de: yoyahack 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.

Hola:

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

Código (php) [Seleccionar]
imagejpeg( $img, NULL, 100);

bye

дٳŦ٭



Con sangre andaluza :)


WHK

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.