Porém gostaria de colocar uma borda dupla. Uma borda com 1px cinza e outra com 4px em branco, e aí a imagem.
 Vejam!Tentei com o PHP, porém sem resultado. Sei que estou no caminho certo mas não está funcionando.
define('MAX_WIDTH', 110);define('MAX_HEIGHT', 80);# Carrega a imagem$img = null;$img = @imagecreatefromstring($sImagem);	// Pega o tamanho da imagem e proporção de resize	$width = imagesx($img);	$height = imagesy($img);	$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);	//Insere uma borda na imagem	$branco = ImageColorAllocate($img, 255, 255, 255);	imagerectangle($img, 0, 0, $new_width, $new_height, $branco);Esse max width e max height são as alturas e larguras máximas. A partir destes valores, ele faz o calculo para manter a proporção no upload. O problema é que eu nao posso setar os pixels fixos, pois as imagens podem ser diferentes por causa das proporções, e com isso a borda poderá ficar torta ou nem aparecer! A borda tem que sempre respeitar o max width e max height!
Abaixo o script todo para quem quiser dar uma olhada.
<?phpob_start();define('PATH_IMG', 'admin/imagens/noticias');define('MAX_WIDTH', 110);define('MAX_HEIGHT', 80);# Pega onde está a imagem// so tenta redimensionar imagens$mime = array('.jpg','.png','.gif','.jpeg','.bmp');$imagemQs = $img;$imagem   = PATH_IMG . '/' . $imagemQs;if(!in_array(substr($imagem,-4),$mime)){    die;}$sImagem  = @file_get_contents($imagem);// se o thumbnail ja existir, mostra o mesmo.if(@file_exists(PATH_IMG.'/thm_'.$imagemQs)){    header('Content-type: image/jpeg');    readfile(PATH_IMG.'/thm_'.$imagemQs);    die;}# Carrega a imagem$img = null;$img = @imagecreatefromstring($sImagem);// Se a imagem foi carregada com sucesso, testa o tamanho da mesmaif ($img) {    // Pega o tamanho da imagem e proporção de resize    $width = imagesx($img);    $height = imagesy($img);    $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);    // Se a imagem é maior que o permitido, encolhe ela!    if ($scale < 1) {        $new_width = floor($scale * $width);        $new_height = floor($scale * $height);        // Cria uma imagem temporária        $tmp_img = imagecreatetruecolor($new_width, $new_height);        // Copia e resize a imagem velha na nova (trocado imagecopyresized por imagecopyresampled. mais qualidade e menor arquivo)        imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);        imagedestroy($img);        $img = $tmp_img;    }}// Cria uma imagem de erro se necessárioif (!$img) {    $img = imagecreate(MAX_WIDTH, MAX_HEIGHT);    imagecolorallocate($img, 204, 204, 204);    $c = imagecolorallocate($img, 153, 153, 153);    $c1 = imagecolorallocate($img, 0, 0, 0);    imageline($img, 0, 0, MAX_WIDTH, MAX_HEIGHT, $c);    imageline($img, MAX_WIDTH, 0, 0, MAX_HEIGHT, $c);    imagestring($img, 2, 12, 55, 'Erro ao carregar imagem <br>'.$_SERVER['QUERY_STRING'], $c1);}// o exemplo a seguir salva o thumbnail no mesmo lugar que a imagem original com o prefixo thumb, para fins de cache.// se não precisar desta funcionalidade, basta comentar o primeiro imagejpeg()	//Insere uma borda na imagem	$branco = ImageColorAllocate($img, 255, 255, 255);	imagerectangle($img, 0, 0, $new_width, $new_height, $branco);// Salva a imagem no mesmo dir com prefixo thm_ e qualidade melhorada. só se não houve um erroif(!empty($imagemQs) && @file_exists($imagem)){    imagejpeg($img,PATH_IMG.'/thm_'.$imagemQs,85);}// Mostra a imagemheader('Content-type: image/jpeg');imagejpeg($img);?>Para chamar a imagem, eu apenas faço <img src="thumb.php?img=nomedaimagem"/>
Algue











