asp.net中上传图片文件实现防伪图片水印并写入数据库
更新时间:2010年10月14日 00:12:04 作者:
asp.net上传图片文件实现防伪图片水印并写入数据库,需要的朋友可以参考下。
复制代码 代码如下:
// 涉及命名空间
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());
}
}
相关文章
关于.NET Framework中的设计模式--应用策略模式为List排序
本篇文章,小编将为大家介绍关于.NET Framework中的设计模式--应用策略模式为List排序,有需要的朋友可以参考一下2013-04-04详解.net core webapi 前后端开发分离后的配置和部署
这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04基于自定义Unity生存期模型PerCallContextLifeTimeManager的问题
本篇文章小编将为大家介绍,基于自定义Unity生存期模型PerCallContextLifeTimeManager的问题。需要的朋友参考下2013-04-04.NET/C#利用反射调用含ref或out参数的方法示例代码
这篇文章主要给大家介绍了关于.NET/C#利用反射调用含ref或out参数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2018-09-09
最新评论