il codice è basic, ma non avrai difficoltà a trasformarlo in c#
Allora, leggo una immagine dal disco, la bordo con un rettangolo rosso spesso 4px, scrivo al centro una stringa semitrasparente, salvo l'immagine nel disco.
'ultima istruzione salva l'immagine nel flusso di uscita (solo per pagine web)
codice:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim immagineInput As String = "C:\dati\Prove Nicon\prova.jpg" 'percorso immagine
Dim bmp As Bitmap = Nothing
Dim gr As Graphics = Nothing
Dim w As Integer = 4 'larghezza penna
Try
'recupero l'immagine
bmp = DirectCast(System.Drawing.Image.FromFile(immagineInput), System.Drawing.Bitmap)
'recupero l'oggetto graphics
gr = Graphics.FromImage(bmp)
'imposto la qualità
gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
gr.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
gr.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
'disegno un rettangolo rosso che borda l'immagine, spesso w px
gr.DrawRectangle(New Pen(Color.Red, (w + w)), 0, 0, bmp.Width, bmp.Height)
'scrivo il carattere gX nel centro dell'immagine, colore giallo, semitrasparente
Dim s As String = "gX"
Dim f As New Font("Arial", 200, FontStyle.Regular, GraphicsUnit.Point)
Dim size As SizeF = gr.MeasureString(s, f)
gr.DrawString(s, f, New SolidBrush(Color.FromArgb(100, 255, 255, 0)), ((bmp.Width - size.Width) / 2), ((bmp.Height - size.Height) / 2))
'salvo l'immagine nel disco
bmp.Save("c:\tmp\prova1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
'salvo l'immagine nello stream di uscita
bmp.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
Catch ex As Exception
'stampo a video messaggio errore
PrintLn(ex.ToString())
Finally
'libero le risorse
If bmp IsNot Nothing Then bmp.Dispose()
If gr IsNot Nothing Then gr.Dispose()
End Try
End Sub