自己收集的asp.net 图片处理小程序

来源:互联网 发布:win10登录windows账号 编辑:程序博客网 时间:2024/04/29 01:42

using System;
using System.Drawing;
using  System.Drawing.Imaging;
using System.Drawing.Drawing2D;

            
//清空Response
            Response.Clear();

            
//建立一个120*30大小,24bit的BMP图像;
            Bitmap imgOutput = new Bitmap(120,30,PixelFormat.Format24bppRgb);
        
            
//根据以上BMP建立一个新图像
            Graphics g = Graphics.FromImage(imgOutput);

            g.Clear(Color.Green);
            
//消除锯齿呈现
            g.SmoothingMode = SmoothingMode.AntiAlias;
            g.DrawString(
"看见了吗?",new Font("黑体",16,FontStyle.Bold),new SolidBrush(Color.White),new PointF(2,4));

            g.FillRectangle(
new LinearGradientBrush(new Point(0,0),new Point(120,30),Color.FromArgb(0,0,0,0),Color.FromArgb(255,255,255,255)),0,0,120,30);

            imgOutput.Save(Response.OutputStream,ImageFormat.Jpeg);
            g.Dispose();
            imgOutput.Dispose();
            Response.End();

以上代码中,我们看到和数据库程序不同,这里专门引入了图象处理的名字空间system.drawing等。程序首先清空了Response,确保没有输出;然后,程序建立了一个120乘30大的BMP图象,再在这个基础上建立一个新图象,建立图象以后,我们首先“画”出了字符串“看见了吗”,该字符串为16大粗黑体,颜色为白色,位置为(2,4);最后,我们实现渐变效果。

以下代码是上传图片和显示图片

  private void SubmitButton_Click(object sender, System.EventArgs e)
  {
  {
   // HttpPostedFile对象,用于读取图象文件属性
   HttpPostedFile UpFile = UP_FILE.PostedFile;

   // FileLength 变量存储图片的字节大小
   int FileLength = UpFile.ContentLength;

   try
   {
    if (FileLength == 0)
    {
     txtMessage.Text = "<b>您未选择上传的文件</b>";
    }
    else
    {
     // 创建存储图片文件的临时 Byte 数组
     Byte[] FileByteArray = new Byte[FileLength];

     // 建立数据流对象
     Stream StreamObject = UpFile.InputStream; 
   
     // 读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
     StreamObject.Read(FileByteArray,0,FileLength);  

     // 数据库操作
     string ConnStr ="server=.;database=test;uid=sa;pwd=";
     string query = "INSERT INTO ImageTable (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@ImageData, @ImageContentType, @ImageDescription, @ImageSize)";
     SqlCommand myCommand = new SqlCommand(query, new SqlConnection(ConnStr));

     // 添加各项参数并赋值
     myCommand.Parameters.Add("@ImageData", SqlDbType.Image);
     myCommand.Parameters.Add("@ImageContentType", SqlDbType.VarChar, 50);
     myCommand.Parameters.Add("@ImageDescription", SqlDbType.VarChar, 200);
     myCommand.Parameters.Add("@ImageSize", SqlDbType.BigInt);
     myCommand.Parameters["@ImageData"].Value = FileByteArray;
     myCommand.Parameters["@ImageContentType"].Value = UpFile.ContentType;
     myCommand.Parameters["@ImageDescription"].Value = txtDescription.Text;
     myCommand.Parameters["@ImageSize"].Value = FileLength;
     
     // 执行数据库操作
     myCommand.Connection.Open();
     myCommand.ExecuteNonQuery();
     myCommand.Connection.Close();

     // 提示上传成功
     txtMessage.Text = "<b>上传文件成功</b>";
    }
   }
   catch (Exception ex)
   {
    // 使用 Label 标签显示异常
    txtMessage.Text = ex.Message.ToString();
   }
  }
  }

  private void Button1_Click(object sender, System.EventArgs e)
  {
   SqlConnection mycon=new SqlConnection("server=.;database=test;uid=sa;pwd=");
   mycon.Open();
   string strsql="select * from ImageTable";
   SqlCommand cmd=new SqlCommand(strsql,mycon);
   SqlDataReader dr=cmd.ExecuteReader();
   if(dr.Read())
   {
    Response.ContentType=(string)dr["ImageContentType"];
//  Response.OutputStream.Write((Byte[])dr["image"],0,(int)dr["imageSize"]);
    Response.BinaryWrite((byte[])dr["ImageData"]);
   }
  }


 }
}

原创粉丝点击