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

Rispondi quotando