Вопрос

Мне нужно создать миниатюры из набора изображений в формате 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 объект выше тоже.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top