将上传图片打上防伪图片水印并写入数据库

将上传图片打上防伪图片水印并写入数据库


Author: 佚名  &;nbspFrom:Internet


                // 涉及命名空间
  using System;
  using System.Collections;
  using System.ComponentModel;
  using System.Data;
  using System.Data.SqlClient;
  using System.Drawing;
  using System.Drawing.Drawing2D;
  using System.Drawing.Imaging;
  using System.Web;
  using System.Configuration;
 
  // 方法
  public void AddUser(string PersonName, string PersonEmail, string PersonSex, string PersonDOB, string PersonImage, string PersonImageType)
  {
  string strImageType = userImage.PostedFile.ContentType;
  Stream ImageStream = userImage.PostedFile.InputStream;
 
  // 加水印----------------->
  string wImageFile = Server.MapPath("/bkwww/image/HomeSign.gif"); // 要加的水印图
  Image sImage = Image.FromStream(ImageStream); // 从 Http 输入流创建 image
  Image wImage = Image.FromFile(wImageFile);
 
  // 绘图
  Graphics g = Graphics.FromImage(sImage);
  g.DrawImage(wImage, new Rectangle(0, 0, wImage.Width, wImage.Height), 0, 0, wImage.Width, wImage.Height, GraphicsUnit.Pixel);
   
  // 保存,并将 image 转化为 byte[]
  MemoryStream ms=new MemoryStream();
  byte[] myImage=null;
  sImage.Save(ms, ImageFormat.Gif);
  myImage = ms.GetBuffer();
  //------------------------>
   
 
 
  // 写入数据库
  string strConn = ConfigurationSettings.AppSettings["ConnectionString"];
  SqlConnection myConnection = new SqlConnection(strConn);
  SqlCommand myCommand = new SqlCommand("sp_person_isp", myConnection);
  myCommand.CommandType = CommandType.StoredProcedure;
 
  myCommand.Parameters.Add("@PersonEmail", SqlDbType.VarChar, 255).Value = PersonEmail;
  myCommand.Parameters.Add("@PersonName", SqlDbType.VarChar, 255).Value = PersonName;
  myCommand.Parameters.Add("@PersonSex", SqlDbType.Char, 1);
  if(sexMale.Checked)
  myCommand.Parameters["@PersonSex"].Value = "M";
  else
  myCommand.Parameters["@PersonSex"].Value = "F";
  myCommand.Parameters.Add("@PersonDOB", SqlDbType.DateTime).Value = PersonDOB;
  myCommand.Parameters.Add("@PersonImage", SqlDbType.Image).Value = myImage;
  myCommand.Parameters.Add("@PersonImageType", SqlDbType.VarChar, 255).Value = ImageType;
 
  try
  {
  myConnection.Open();
  myCommand.ExecuteNonQuery();
  myConnection.Close();
  Response.Write("添加成功!");
  }
  catch(System.Exception SqlEx)
  {
  Response.Write("添加失败!" SqlEx.ToString());
  }
  }
 
  /*
  www.knowsky.com
  Author: sharpcn | Scorpion
  Studio: www.bkwww.com
  Copyright(c) 2004 明天家园
  Function:将上传的图片添加防伪图片水印,并将图片直接写入数据库,不保留在硬盘。
  */
 
    (2005-6-11:07:45)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

Ajax.Net Auto-fill User Control
使用非托管代码直接修改字符串
ASP.NET 2.0防止同一用户同时登陆
System.Web.Routing入门及进阶 上篇
在ASP.NET中处理大文件上传
在ASP.NET 2.0中直接得到本页面生成的HTML代码
用Asp.net实现基于XML的留言簿之四
对象成员数据验证组件实现
ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载
.NET和SQL Server中“空值”辨析