< 返回

    美国服务器如何将上传图片打水印并写入数据库

    2020-08-26 10:43 作者: 阅读量:1210

    // 涉及命名空间
    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.idc.net
    Author: sharpcn | Scorpion
    Studio: www.idc.net
    Copyright(c) 2020 美国服务器
    Function:将上传的图片添加防伪图片水印,并将图片直接写入数据库,不保留在硬盘。
    */

    联系我们
    返回顶部