Para el tema de hacer aparecer una imagen a un tamaño proporcional yo me hice esta clase:
Código PHP:
class Foto{
var $ruta;
var $ancho;
var $alto;
var $tipo;
var $atributos;
//Constructor
function Foto($ruta){
$this->ruta=$ruta;
list($this->ancho, $this->alto, $this->tipo, $this->atributos) = getimagesize("ruta/a/la/imagen/".$this->ruta);
}
function verMini(){
$anchofinal=110;//es el ancho que tiene que medir la imagen pequeña
$altofinal=80;//es el alto que tiene que medir la imagen pequeña
if(($this->ancho/$this->alto)==($anchofinal/$altofinal)){
$ancho=$this->ancho;
$alto=$this->alto;
}else{
if(($this->ancho/$this->alto)<($anchofinal/$altofinal)){
$alto=$altofinal;
$tmp=$this->alto/$altofinal;
$ancho=$this->ancho/$tmp;
}else{
$ancho=$anchofinal;
$tmp=$this->ancho/$anchofinal;
$alto=$this->alto/$tmp;
}
}
echo '<img src="ruta/a/la/imagen/'.$this->ruta.'" border="0" width="'.$ancho.'" height="'.$alto.'" alt="Click para ampliar">
';
}
}//fin clase
Tal vez te sirva para lo tuyo.