PHP: ahora un problema para crear una imagen en el server
2 seguidores
Alguien entiende esto ...
Fatal error: Call to undefined function: imagecreatefromjpeg() in C:\www\klinks\admin\upload.php on line 27
antes me funcionaba todo ok pero al actualizar las versiones de php y mySQL me empizan a fallar cositas como esta XD
meddle
puede ser un monton de cosas. estas seguro que tienes las GD instaladas? Usas win? etc etc. Nos pones el ejemplo completo?
keteperlin
tengo PHP Version 4.3.3RC1 + Apache 2.0.45 sobre windows xp profesional.
y el codigo es este. Subo la imagen al server la copio y creo el thumb, ...
<?php
include ("actions/accessControl.php");
<em>//Parametros configurables del script</em>
$F_dir = "../images/links";
<em>//salida:imagen</em>
$img_name=$_GET[id_link].".jpg";
$img_width = 130;
$img_height = 93;
$img_quality = 100;
<em>//salida:thumbnail</em>
$thumb_name="thumb_".$_GET[id_link].".jpg";
$thumb_width = 70;
$thumb_height = 50;
$thumb_quality = 100;
<em>//entrada: original</em>
$F_name = $HTTP_POST_FILES['fupload']['name'];
$F_type = $HTTP_POST_FILES['fupload']['type'];
$F_size = $HTTP_POST_FILES['fupload']['size'];
$F_path = $HTTP_POST_FILES['fupload']['tmp_name'];
<em>//si ha subido OK ...</em>
if (is_uploaded_file($F_path)) {
<em> //Obtener datos del original.</em>
$imagedata = GetImageSize($F_path);
$imagewidth = $imagedata[0];
$imageheight = $imagedata[1];
<em>//creamos imagen</em>
$src_img = imagecreatefromjpeg($F_path);
$dst_img = imagecreate($img_width,$img_height);
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $img_width,$img_height, $imagewidth, $imageheight);
imagejpeg($dst_img, $F_dir."/".$img_name, $img_quality);
<em>//creamos thumb</em>
$src_thumb = imagecreatefromjpeg($F_path);
$dst_thumb = imagecreate($thumb_width,$thumb_height);
imagecopyresized($dst_thumb, $src_thumb, 0, 0, 0, 0, $thumb_width,$thumb_height, ($imagewidth-5), ($imageheight-5));
imagejpeg($dst_thumb, $F_dir."/".$thumb_name, $thumb_quality);
<em>//regresamos</em>
header("Location: upload.php?done=true");
}
?>
... y sige con el formulario de entrada del archivo.
como lo veis?
keteperlin
que son las GD?
meddle
windows no acepta las GD, que son las librerias que se usan para crear o modificar imagenes en servidor. Lo siento.
meddle
perdona, veo que eso no es cierto: http://es2.php.net/manual/en/ref.image.php
Igual es algo de la configuracion. Dejame ver el codigo de nuevo y te digo algo. Aunque yo primero probaria algo super sencillo
meddle
¿has probado algo sencillo como esto? Si esta no te funciona es que tienes el GD mal instalado. Basicamente, el script crea una imagen a partir de otra con tamaño y posicion de copiado segun las variables. Creo que es bastante intuitivo.
<code><?php
header("Content-Type: image/jpeg");
$file = "horses.jpg";
$W = 100;
$H = 60;
$X = 0;
$Y = 0;
$destinationImg = imagecreate($W,$H);
$sourceImg = imagecreatefromjpeg($file);
//imagecopyresized (dst_im, src_im, dstX, dstY, srcX, srcY, dstW, dstH, srcW, srcH);
imagecopyresized($destinationImg,$sourceImg,0,0,$X,$Y,$W,$H,$W,$H);
imagejpeg($destinationImg);
imagedestroy($destinationImg);
?></code>
Cambia el nombre de la imagen y sube el archivo al mismo directorio que esta.