Foros del Web » Programando para Internet » PHP »

guardar imagen

Estas en el tema de guardar imagen en el foro de PHP en Foros del Web. hola tengo este codigo en php para guardar una imagen pero el problema es que la instruccion header al usarla no deja escribir ningun texto ...
  #1 (permalink)  
Antiguo 17/09/2012, 22:25
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 7 meses
Puntos: 15
Exclamación guardar imagen

hola tengo este codigo en php para guardar una imagen pero el problema es que la instruccion header al usarla no deja escribir ningun texto para ser mostrado en la web:

<?php
session_start();
$usuario = $_SESSION['usuario_d'];
$destino = "images/".$usuario."/nueva.jpg";
$res = json_decode(stripslashes($_POST['jsondata']), true);
/* get data */
$count_images = count($res['images']);
/* the background image is the first one */
$background = $res['images'][0]['src'];
$photo1 = imagecreatefromjpeg($background);
$foto1W = imagesx($photo1);
$foto1H = imagesy($photo1);
$photoFrameW = $res['images'][0]['width'];
$photoFrameH = $res['images'][0]['height'];
$photoFrame = imagecreatetruecolor($photoFrameW,$photoFrameH);
imagecopyresampled($photoFrame, $photo1, 0, 0, 0, 0, $photoFrameW, $photoFrameH, $foto1W, $foto1H);

/* the other images */
for($i = 1; $i < $count_images; ++$i){
$insert = $res['images'][$i]['src'];
$photoFrame2Rotation = (180-$res['images'][$i]['rotation']) + 180;

$photo2 = imagecreatefrompng($insert);

$foto2W = imagesx($photo2);
$foto2H = imagesy($photo2);
$photoFrame2W = $res['images'][$i]['width'];
$photoFrame2H = $res['images'][$i]['height'];

$photoFrame2TOP = $res['images'][$i]['top'];
$photoFrame2LEFT= $res['images'][$i]['left'];

$photoFrame2 = imagecreatetruecolor($photoFrame2W,$photoFrame2H);
$trans_colour = imagecolorallocatealpha($photoFrame2, 0, 0, 0, 127);
imagefill($photoFrame2, 0, 0, $trans_colour);

imagecopyresampled($photoFrame2, $photo2, 0, 0, 0, 0, $photoFrame2W, $photoFrame2H, $foto2W, $foto2H);

$photoFrame2 = imagerotate($photoFrame2,$photoFrame2Rotation, -1,0);
/*after rotating calculate the difference of new height/width with the one before*/
$extraTop =(imagesy($photoFrame2)-$photoFrame2H)/2;
$extraLeft =(imagesx($photoFrame2)-$photoFrame2W)/2;

imagecopy($photoFrame, $photoFrame2,$photoFrame2LEFT-$extraLeft, $photoFrame2TOP-$extraTop, 0, 0, imagesx($photoFrame2), imagesy($photoFrame2));
}
// Set the content type header - in this case image/jpeg


header('Content-type: image/jpeg');
imagejpeg($photoFrame,$destino,100);
imagejpeg($photoFrame);
imagedestroy($photoFrame);

?>



si alguien me pudiese ayudar se lo agradeceria
  #2 (permalink)  
Antiguo 17/09/2012, 22:30
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: guardar imagen

Pero y cual es el "error"? te muestra algo en pantalla?
  #3 (permalink)  
Antiguo 17/09/2012, 22:34
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 7 meses
Puntos: 15
Respuesta: guardar imagen

no.. si escribo un echo "hola" o algo para que muestre en pantalla no lo escribe pero si quito el header y escribo algún echo si escribe pero sale error de Cannot modify header information
  #4 (permalink)  
Antiguo 17/09/2012, 22:39
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: guardar imagen

http://www.comunidadhosting.com/prog...eady-sent.html LEE ESO
y en el foro hay bastante sobre ese tipico error.

http://www.php.net/manual/es/function.header.php

http://www.bloogie.es/tecnologia/pro...s-already-sent

no pueden haber espacios en blanco antes de header, salidas en pantalla, etiquetas html
  #5 (permalink)  
Antiguo 18/09/2012, 01:08
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: guardar imagen

Es que estas indicando que ese archivo es una imagen.
Código PHP:
Ver original
  1. header('Content-type: image/jpeg');
Cualquier texto que muestres te dará error ya que has declarado que es imagen y no otro typo de archivo.
Si quitas el header puedes cargar la imagen como una imagen normal ya que se guarda, si no hay error de código, en la ruta:
"images/".$usuario."/nueva.jpg";

Última edición por jossss; 18/09/2012 a las 01:44

Etiquetas: usuarios
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 11:36.