Foros del Web » Programando para Internet » PHP »

Creacion dinamica de imagenes

Estas en el tema de Creacion dinamica de imagenes en el foro de PHP en Foros del Web. Saludos a todos. Estoy desarrollando una galeria de imagenes mediante programacion. Lo que pretendo conseguir es reducir el tamaño de las imagenes. Y lo consigo, ...
  #1 (permalink)  
Antiguo 14/03/2006, 10:57
 
Fecha de Ingreso: agosto-2004
Mensajes: 312
Antigüedad: 20 años, 3 meses
Puntos: 0
Creacion dinamica de imagenes

Saludos a todos.
Estoy desarrollando una galeria de imagenes mediante programacion. Lo que pretendo conseguir es reducir el tamaño de las imagenes. Y lo consigo, lo que ocurre es que las imagenes pierden calidad de color.
Aqui adjunto el codigo que utilizo a ver si alguien puede decirme donde esta el error.
Gracias por adelantado

<?php
//Declaramos las variables
$width = 100;
$height = 100;
$file = $_GET['image'];
// $file = "imagenes/puestadesol.jpg";
//Creamos la imagen
$im = imagecreate($width, $height);
$src_im = imagecreatefromjpeg($file);

//Asignamos los colores
$bg = imagecolorallocate($im, 200, 200, 200);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
$margin_x = 10;
$margin_y = 10;
$w = $width-2*$margin_x;
$h = $height-2*margin_y;
$src_w = imagesx($src_im);
$src_h = imagesy($src_im);

//Desplegamos la imagen en la dimension original
if (($w > $src_w) && ($h > $src_h)) {
$dst_w = $src_w;
$dst_h = $src_h;
} elseif (($src_w/$src_h) > ($w/$h)) {
//o escalamos la imagen de acuerdo a la imagen horizontal
$dst_w = $w;
$dst_h = $w*$src_h/$src_w;
} else {
//o escalamos de acuerdo a la imagen vertical
$dst_w = $h*$src_w/$src_h;
$dst_h = $h;
}
imagecopyresized($im, $src_im, ($width-$dst_w)/2, ($height-$dst_h)/2, 0, 0, $dst_w, $dst_h, $src_w, $src_h);

//Cabecera correspondiente para la imagen de salida
header("Content-type:image/jpeg");

//Generamos la imagen
imagejpeg($im,"",75);

//destruimos la imagen
imagedestroy($im);
?>
  #2 (permalink)  
Antiguo 14/03/2006, 11:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Las funciones que usas son para las extensiones de PHP (librerias) GD versión 1.x .. Esta versión de GD sólo soporta en sus funciones tipo imagecopyresized() una paleta de colores de 256 colores.

Debes usar la librería GD versión 2.x (eso tendrás que verificarlo en tu servidor que versión usas) y las funciones:

imagecopyresampled()
http://www.php.net/manual/en/functio...yresampled.php

Y afines ... para poder trabajar con la paleta de colores "true color" (16M colores o más).

Un saludo,
  #3 (permalink)  
Antiguo 14/03/2006, 11:25
 
Fecha de Ingreso: agosto-2004
Mensajes: 312
Antigüedad: 20 años, 3 meses
Puntos: 0
Gracias por la informacion. Vere si lo puedo resolver
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 14:43.