我在网上找到给图片加文字水印的C#版本,我想改为VB.NET版本 下面代码中的
 g.DrawImage(image, 0, 0, image.Width, image.Height) 出错
 出错信息: 未将对象引用设置到对象的实例。   VB.NET是不是不能这样写 Dim image As Image = image.FromFile(Server.MapPath("./") & "upload\" & filename)
            Dim g As Graphics        
            g.DrawImage(image, 0, 0, image.Width, image.Height)            Dim f As New Font("verdana", 10)
            Dim b As Brush = New SolidBrush(Color.Black)
            Dim c As Brush = New SolidBrush(Color.White)
            Dim addtext As String = "www.ku8.cn"
            g.DrawString(addtext, f, b, 10, 10)
            g.DrawString(addtext, f, c, 11, 11)
            g.Dispose()
            image.Save(Server.MapPath("./") & "upload\ku8" & filename)
            image.Dispose()

解决方案 »

  1.   

    UploadFile.PostedFile.SaveAs(path);  //加文字水印,注意,这里的代码和以下加图片水印的代码不能共存 
    System.Drawing.Image image = System.Drawing.Image.FromFile(path); 
                    
    Graphics g = Graphics.FromImage(image); 
    g.DrawImage(image, 0, 0, image.Width, image.Height); 
    Font f = new Font("Verdana", 10); 
    Brush b = new SolidBrush(Color.Black);
    Brush c= new SolidBrush (Color.White );
    string addText = this.TextString.Text; 
    g.DrawString(addText, f, b, 10, 10); 
    g.DrawString(addText, f, c, 11, 11); 
    g.Dispose();
      

  2.   

    change
    Sample code as follows:
    Dim bitWaterMark As New Bitmap( image.Width, image.Height )
    Dim g As Graphics = Graphics.FromImage( bitWaterMark )g.DrawImage(image, 0, 0, image.Width, image.Height)Dim f As New Font("verdana", 10)
    Dim b As Brush = New SolidBrush(Color.Black)
    Dim c As Brush = New SolidBrush(Color.White)
    Dim addtext As String = "www.ku8.cn"
    g.DrawString(addtext, f, b, 10, 10)
    g.DrawString(addtext, f, c, 11, 11)
    g.Dispose()
    image.Dispose()
    bitWaterMark.Save(Server.MapPath("./") & "upload\ku8" & filename)
    bitWaterMark.Dispose()
      

  3.   

    Sample code as follows:
    Dim image As Image = image.FromFile(Server.MapPath("./") & "upload\" & filename)
    Dim bitWaterMark As New Bitmap( image.Width, image.Height )
    Dim g As Graphics = Graphics.FromImage( bitWaterMark )g.DrawImage(image, 0, 0, image.Width, image.Height)Dim f As New Font("verdana", 10)
    Dim b As Brush = New SolidBrush(Color.Black)
    Dim c As Brush = New SolidBrush(Color.White)
    Dim addtext As String = "www.ku8.cn"
    g.DrawString(addtext, f, b, 10, 10)
    g.DrawString(addtext, f, c, 11, 11)
    g.Dispose()
    image.Dispose()
    bitWaterMark.Save(Server.MapPath("./") & "upload\ku8" & filename)
    bitWaterMark.Dispose()
      

  4.   

    恩,这个不会.
    帮LZ up!
    学习ing....
      

  5.   

    按照Knight94(愚翁) 的提示 我修改了以下代码  没有错误了  但是没有在图片上加字哦 怎么办? Dim path As String = Server.MapPath("./") & "upload\" & filename
                aupload.PostedFile.SaveAs(path)            Dim image As Image = image.FromFile(path)
                Dim bitWaterMark As New Bitmap(image, image.Width, image.Height)
                Dim g As Graphics = Graphics.FromImage(bitWaterMark)            Dim f As New Font("verdana", 10)
                Dim b As Brush = New SolidBrush(Color.Black)
                Dim c As Brush = New SolidBrush(Color.White)
                Dim addtext As String = "www.ku8.cn"
                g.DrawString(addtext, f, b, 10, 10)
                g.DrawString(addtext, f, c, 11, 11)
                g.Dispose()
                image.Save(Server.MapPath("./") & "upload\ku8" & filename)
                image.Dispose()
                If (File.Exists(Server.MapPath("./") & "upload\" & filename)) Then
                    File.Delete(Server.MapPath("./") & "upload\" & filename)
                End If