欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net中上传图片文件实现防伪图片水印并写入数据库

程序员文章站 2024-03-08 10:54:46
复制代码 代码如下:// 涉及命名空间 using system; using system.collections; using system.componentmode...
复制代码 代码如下:

// 涉及命名空间
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());
}
}