Gerar miniatura com borda branca
-
09-06-2019 - |
Pergunta
Preciso gerar miniaturas a partir de um conjunto de jpg's que precisam ter uma pequena borda branca para que pareçam "fotos" quando exibidas em um mapa.Obter as miniaturas é fácil, mas não consigo descobrir como obter a borda.
Solução
Aqui está um hack rápido:
public Image AppendBorder(Image original, int borderWidth)
{
var borderColor = Color.White;
var newSize = new Size(
original.Width + borderWidth * 2,
original.Height + borderWidth * 2);
var img = new Bitmap(newSize.Width, newSize.Height);
var g = Graphics.FromImage(img);
g.Clear(borderColor);
g.DrawImage(original, new Point(borderWidth, borderWidth));
g.Dispose();
return img;
}
Ele cria um novo Bitmap
objeto que tem o tamanho do original mais 2 vezes a largura da borda e depois pinta a imagem original no meio e depois retorna a imagem finalizada.
Você pode fazer muitos desenhos/pinturas com o Graphics
objeto acima também.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow