Avatar Image
Usuario habitual
Usuario habitual

Alguien sabe como puedo redimensionar imagenes utilizando php? encontre un script q utiliza la libreria GD y lo hace pero me deforma todas las imagenes la calidad esta espantosa, no se ve nada!!! please help me!!

Avatar Image
@man / @woman
@man / @woman

Se hace con GD... otra cosa es que ese script no este bien... es decir, no puedes ampliar la imagen, pues se distorsionaría, tampoco deberías reducir la imagen a ciertas dimensiones exactas, pues se distorsionarian... tiene que haber un acuerdo entre el ancho y largo nuevo para que guarde relación con el viejo, ese es el truco.


Recomendación: busca otro script.

Avatar Image
User 390661
@man / @woman
@man / @woman

Pues yo he usado este y no me sirve bien, de vez en cuando funciona visitar php.net
<?PHP

$image_name = $_GET['image_name'];
$style = $_GET['style'];

// Now set the maximum sizes to the different styles.
// You may set additional styles, but remember to
// create the according subfolders.

switch($style) {
case "show":
$max_size = 800;
break;
case "thumb":
$max_size = 125;
}

$dest_file = "imagesdb/$style/$image_name";
// set output file
$image_file = "imagesdb/full/$image_name";
// set source file
$size = getimagesize($image_file);
// get original size

if($size[0] > $size[1]) {
$divisor = $size[0] / $max_size;
}
else {
$divisor = $size[1] / $max_size;
}
// to get allways pictures of the same size, which ist
// mostly wanted in imageviewers, look what ist larger:
// width or height

$new_width = $size[0] / $divisor;
$new_height = $size[1] / $divisor;
// set new sizes

settype($new_width, 'integer');
settype($new_height, 'integer');
// sizes should be integers

$image_big = imagecreatefromjpeg($bilddatei);
// load original image
$image_small = imagecreatetruecolor($new_width, $new_height);
// create new image
imagecopyresampled($image_small, $image_big, 0,0, 0,0, $new_width,$new_height, $size[0],$size[1]);
// imageresampled whill result in a much higher quality
// than imageresized
imagedestroy($image_big);
// the original data are no longer used

header("Content-type: image/jpeg");

if($style=="show" || $style=="thumb") {
if(!file_exists($dest_file))
imagejpeg($image_small, $dest_file, 100);
}
// if you have set additional sizese put them in the
// if-arguments, too.
// if someone calls the image.php directly in the
// browser with imagenames allready existing, they
// won't be overwritten

imagejpeg($image_small, '', 100);
imagedestroy($image_small);
// finally send image to browser and destroy no longer
// needed data.

?>

Avatar Image
Usuario habitual
Usuario habitual

Prueba con esto:

function createthumb($name,$filename,$new_w,$new_h){
 $system=explode('.',$name);
 if (preg_match('/jpg|jpeg/',$system[1] ){
  $src_img=imagecreatefromjpeg($name);
 }
 if (preg_match('/png/',$system[1] ){
  $src_img=imagecreatefrompng($name);
 }

 $old_x=imageSX($src_img);
 $old_y=imageSY($src_img);
 if ($old_x > $old_y) {
  $thumb_w=$new_w;
  $thumb_h=$old_y*($new_h/$old_x);
 }
 if ($old_x < $old_y) {
  $thumb_w=$old_x*($new_w/$old_y);
  $thumb_h=$new_h;
 }
 if ($old_x == $old_y) {
  $thumb_w=$new_w;
  $thumb_h=$new_h;
 }

 $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
 imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);

  
 if (preg_match("/png/",$system[1] )
 {
  imagepng($dst_img,$filename);
 } else {
  imagejpeg($dst_img,$filename);
 }
 imagedestroy($dst_img);
 imagedestroy($src_img);
}

Le pasas la imagen origen, el nombre de la imagen a crear y las dimensiones maximas (x e y).

Pero,.....a mi me funciona solo con algunas de mis imagenes, con otras me da este error:

: Allowed memory size of 8388608 bytes exhausted (tried to allocate 2548 bytes) 

Justo en la linea -->  $src_img=imagecreatefromjpeg($name);

¿Alguien sabe que puedo hacer?

Por otro lado, esto solo funciona para imagenes en mi directorio, pero no para imagenes en otras URL. 
¿Alguien tiene otra alternativa?
Un saludete.

Daganzo
Machacateclados
Machacateclados

A mi me sigue sin funcionar... Algo equivalente.Grcias

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 09/Feb/2009, 01:32
ricardo_22 Caos.X NoSetup.org germangerman Alvaro_brub53kFeb/09
Por: , el 18/Jun/2003, 10:24
infovalles firecl arraultzetik chavp44kJun/03
Por: , el 13/Sep/2013, 15:46
Oricis NoSetup.org22kSep/13
Por: , el 29/Mar/2011, 21:44
anghelo41 NoSetup.org12kMar/11
Por: , el 07/Feb/2009, 00:43
hh809 NoSetup.org12kFeb/09