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_alto, true);
# 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_alto, true);
$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,