Porém gostaria de colocar uma borda dupla. Uma borda com 1px cinza e outra com 4px em branco, e aí a imagem.

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