Ver Mensaje Individual
  #31 (permalink)  
Antiguo 05/03/2008, 21:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Edición de imágenes con PHPImagen (Aporte)

Esto como una acotación. Verás, todos los cambios se hacen directamente en la propiedad $source, no existe una propiedad que se llame $output. Por lo tanto, desconozco como es que ese cambio solucionó el problema de asdf-1.

Ahora, yendo a tu problema. El error está en tu código:
Código PHP:
<? 
# Estas lineas debes borrarlas. Hacen que el codigo PHP de este archivo
# quede visible si se define la variable de URL source
if(isset($_GET['source'])) {  
    
highlight_file(__FILE__);  
    exit;  
}  
# ------------
 
# Aqui guardas el nombre de archivo en la variable $imagen
$imagen $_GET['file'];   
 
# incluyes el script
include_once "PHPImagen.lib.php";   
 
# OJO: estás instanciando la clase en la misma variable $imagen
$imagen = new Imagen($imagen);   
 
# ancho y alto
$nuevo_ancho $_GET['ancho'];  
$nuevo_alto $_GET['alto'];  
 
# aparentemente esta linea no te sirve de nada, ya que en la
# siguiente linea, cuando llamas el metodo resize(), le das
# al tercer parametro el valor de true
$cut = (isset($_GET['cut'])) ? true false;  
 
# redimensionas
$imagen->resize($nuevo_ancho$nuevo_altotrue);  
 
# Hasta aqui todo esta bien. Aqui esta el problema:
$imagen->doSave("$imagen",90); 
# La variable $imagen contenia inicialmente el nombre del archivo,
# pero luego la usaste para instanciar la clase. Por lo tanto
# ya no es un string, es un objeto
?>
Si intentas abrir el script directamente en tu navegador (http://www.tusitio.com/trataimg.php?...o=180&cut=true) te devolverá un error del tipo

Catchable fatal error: Object of class Imagen could not be converted to string

Lo solucionas cambiando el nombre de las variables:

Código PHP:
<?php 
//if(isset($_GET['source'])) {  
//  highlight_file(__FILE__);  
//  exit;  
//}  
 
# Usamos $archivo para guardar el nombre de la imagen
$archivo $_GET['file'];   
 
include_once 
"PHPImagen.lib.php";   
 
$imagen = new Imagen($archivo); # $archivo
 
$nuevo_ancho $_GET['ancho'];  
$nuevo_alto $_GET['alto'];  
$cut = (isset($_GET['cut'])) ? true false;  
$imagen->resize($nuevo_ancho$nuevo_altotrue);  
 
$imagen->doSave($archivo,90); # $archivo
 
# Ademas, como el script lo llamas con un tag <img>, es necesario
# que envies al navegador la imagen [doPrint()]
$imagen->doPrint();
 
?>
Espero que esto solucione tu problema. Saludos,