Domanda

Devo generare miniature da una serie di jpg che devono avere un piccolo bordo bianco in modo che sembrino "foto" quando vengono visualizzate su una mappa.Ottenere le miniature stesse è facile ma non riesco a capire come ottenere il bordo.

È stato utile?

Soluzione

Ecco un trucco veloce:

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;
}

Ne crea uno nuovo Bitmap oggetto che ha le dimensioni dell'originale più 2 volte la larghezza del bordo, quindi dipingi l'immagine originale al centro e quindi restituisci l'immagine finita.

Puoi fare molti disegni/dipingi con il Graphics oggetto anche sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top