2013-07-09 74 views
1

我今天的任務是創建一個程序來添加水印,以創建一個去除相同的水印。vb.net圖像處理

我的想法是,它現在是圖像的一部分,不能很容易地刪除。

這是準確的還是實際上的一種方式? (這並不需要10年)

感謝任何提示

這裏是我的代碼添加水印:

Dim watermark_bm As Bitmap = Global.AnchorAuditor.My.Resources.Logo_White 
    Dim watermark_bm2 As Bitmap = Global.AnchorAuditor.My.Resources.CLS_Logo_White_Engineering 

    'watermark_bm2.MakeTransparent() 

    ' WATERMARK IMAGE 1 - AA 
    Using str As Stream = File.OpenRead(s) 

     Dim or_bm As Bitmap = Image.FromStream(str) 

     '''''''''''''''''''''''''START IMAGE 1'''''''''''''''''''''''''' 

     or_bm.SetResolution(20, 20) 

     Dim x1 As Integer = or_bm.Width - 300 
     Dim Y As Integer = or_bm.Height - 300 

     Const ALPHA As Byte = 128 
     ' Set the watermark's pixels' Alpha components. 
     Dim clr As Color 
     For py As Integer = 0 To watermark_bm.Height - 1 
      For px As Integer = 0 To watermark_bm.Width - 1 
       clr = watermark_bm.GetPixel(px, py) 
       watermark_bm.SetPixel(px, py, _ 
        Color.FromArgb(ALPHA, clr.R, clr.G, clr.B)) 
      Next px 
     Next py 

     ' Set the watermark's transparent color. 
     watermark_bm.MakeTransparent(watermark_bm.GetPixel(0, _ 
      0)) 

     ' Copy onto the result image. 
     Dim gr As Graphics = Graphics.FromImage(or_bm) 
     gr.DrawImage(watermark_bm, x1, Y) 

     '''''''''''''''''''''''''END IMAGE 1 START IMAGE 2'''''''''''''''''''''''''' 

     or_bm.SetResolution(60, 60) 

     Dim x2 As Integer = 75 
     Dim Y1 As Integer = 75 

     Const ALPHA1 As Byte = 128 
     ' Set the watermark's pixels' Alpha components. 
     Dim clr1 As Color 
     For py As Integer = 0 To watermark_bm2.Height - 1 
      For px As Integer = 0 To watermark_bm2.Width - 1 
       clr1 = watermark_bm2.GetPixel(px, py) 
       watermark_bm2.SetPixel(px, py, _ 
        Color.FromArgb(ALPHA1, clr1.R, clr1.G, clr1.B)) 
      Next px 
     Next py 

     ' Set the watermark's transparent color. 
     watermark_bm2.MakeTransparent(watermark_bm2.GetPixel(0, _ 
      0)) 

     ' Copy onto the result image. 
     Dim gr1 As Graphics = Graphics.FromImage(or_bm) 
     gr1.DrawImage(watermark_bm2, x2, Y1) 


     ''''''''''''''''''''''''END IMAGE 2''''''''''''''''''''''''''' 
     or_bm.Save(s & "deleteme.jpg", _ 
     System.Drawing.Imaging.ImageFormat.Jpeg) 

    End Using 

回答

3

你是正確的 - 添加水印要容易得多比刪除它。標準方法是保留原始的某個地方的副本並使用它,而不是試圖在之後操作圖像。

+0

謝謝,是這麼想的 – Pakk