Esta funcionalidad ya la implementamos hace algunas semanas y la verdad que nos funciona de maravilla. A continuación te indicamos el sencillo código con el que podrás subir una imagen y añadirle una marca de agua a cualquier imagen mediante asp.net
Dim UploadFichero As HttpPostedFile = UploadFicheroColeccion(0) UploadFichero.SaveAs(HttpContext.Current.Server.MapPath("files\") & Path.GetFileName(UploadFichero.FileName)) UploadFicheroColeccion = Nothing strNombreFile = Path.GetFileName(UploadFichero.FileName) UploadFichero.InputStream.Dispose() UploadFichero.InputStream.Close() UploadFichero = Nothing ' OBTENER RUTA Y NOMBRE DEL ARCHIVO RutaFichero = HttpContext.Current.Server.MapPath("files") & "\" & strNombreFile Dim Width, Height As Integer Dim Img As System.Drawing.Image Dim baseMap As Bitmap Dim letterBrush As SolidBrush = New SolidBrush(Color.FromArgb(50, 255, 255, 255)) Dim shadowBrush As SolidBrush = New SolidBrush(Color.FromArgb(50, 0, 0, 0)) Dim fontTitle As Font = New Font("verdana", 18, FontStyle.Bold) Dim txtMarcaAgua As String = incFuncionesObject.fObtenerValorConfiguracion(2190) Img = System.Drawing.Image.FromFile(RutaFichero) Width = Img.Width Height = Img.Height baseMap = New Bitmap(Width, Height) Dim myGraphic As Graphics = Graphics.FromImage(baseMap) With myGraphic .InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic .DrawImage(Img, 0, 0, Width, Height) .SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias .DrawString(txtMarcaAgua, fontTitle, shadowBrush, Width / 4, Height - 29) .DrawString(txtMarcaAgua, fontTitle, letterBrush, (Width / 4) + 2, Height - 31) End With Img.Dispose() '' Grabar la imagen físicamente baseMap.Save(RutaFichero) baseMap.Dispose() Img = Nothing
y con esto ya tienes lista esta útil funcionalidad que más de un cliente ya nos ha solicitado.