Создать миниатюру с белой рамкой
-
09-06-2019 - |
Вопрос
Мне нужно создать миниатюры из набора изображений в формате JPG, которые должны иметь небольшую белую рамку, чтобы при отображении на карте они выглядели как «фотографии».Получить сами миниатюры легко, но я не могу понять, как получить границу.
Решение
Вот быстрый хак:
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;
}
Он создает новый Bitmap
объект, который имеет размер оригинала плюс 2-кратную ширину границы, затем рисует исходное изображение посередине, а затем возвращает готовое изображение.
Вы можете много рисовать/раскрашивать с помощью Graphics
объект выше тоже.
Не связан с StackOverflow