300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASP.NET使用数据库存储 读取并修改图片

ASP.NET使用数据库存储 读取并修改图片

时间:2019-03-02 07:57:27

相关推荐

ASP.NET使用数据库存储 读取并修改图片

在SQL SERVER中建立这样结构的一个表:

==============================================================================================using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Drawing;

using System.Drawing.Imaging;

using System.Drawing.Drawing2D;

using System.Data.SqlClient;

using System.IO;

public partial class ChangeImageSize : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

private int width;

private int height;

private Bitmap newpic, savepic;

private float k1, k2;

/// <summary>

/// 构造函数

/// </summary>

public ChangeImageSize()

{

}

/// <summary>

/// 传入一张图片,并设定它的大小

/// </summary>

/// <param name="TheImage">传入的图片对象</param>

/// <param name="TheWidth">图片宽的范围</param>

/// <param name="TheHeight">图片长的范围</param>

/// <param name="path">保存的文件名和路径</param>

public Bitmap ChangePicMethod(object TheImage, int TheWidth, int TheHeight)

{

newpic = new Bitmap((System.Drawing.Image)TheImage);

this.width = newpic.Width;

this.height = newpic.Height;

k1 = (float)width / (float)TheWidth;

k2 = (float)height / (float)TheHeight;

if (k1 > k2)

{

this.width = (int)(width / k1);

this.height = (int)(height / k1);

}

else

{

this.width = (int)(width / k2);

this.height = (int)(height / k2);

}

savepic = new Bitmap(newpic, width, height);

return savepic;

//savepic.Save(@path);

}

/// <summary>

/// 保存图片到数据库

/// </summary>

/// <returns></returns>

private bool StoreImage()

{

bool rs = false;

Stream imgdatastream = this.FileUpload1.PostedFile.InputStream;

int imgdatalen = this.FileUpload1.PostedFile.ContentLength;

string imgtype = this.FileUpload1.PostedFile.ContentType;

string imgtitle =FileUpload1.PostedFile.FileName;

// byte[] imgdata = new byte[imgdatalen];

//int n = imgdatastream.Read(imgdata, 0, imgdatalen);

//Bitmap bp = ChangePicToSaveMethod(imgdatastream, 200, 200);

MemoryStream ms = new MemoryStream();

Bitmap bp = new Bitmap(imgdatastream);

bp = ChangePicMethod(bp, 200, 200);

//bp=bp.GetThumbnailImage(200,200,new System.Drawing.Image.GetThumbnailImageAbort(aa()) ,System.IntPtr.Zero);

bp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

ms.Flush();

byte[] imgdata = ms.GetBuffer();

ms.Close();

SqlConnection connection = Connection.getConnection();

SqlCommand command = new SqlCommand("INSERT INTO ImageStore(ImageTitle,ImageType,ImageData)VALUES ( @imgtitle, @imgtype,@imgdata )", connection);

SqlParameter paramTitle = new SqlParameter("@imgtitle", SqlDbType.VarChar, 50);

paramTitle.Value = imgtitle;

command.Parameters.Add(paramTitle);

SqlParameter paramData = new SqlParameter("@imgdata", SqlDbType.Image);

paramData.Value = imgdata;

command.Parameters.Add(paramData);

SqlParameter paramType = new SqlParameter("@imgtype", SqlDbType.VarChar, 50);

paramType.Value = imgtype;

command.Parameters.Add(paramType);

connection.Open();

int numRowsAffected = command.ExecuteNonQuery();

connection.Close();

rs = true;

return rs;

}

/// <summary>

/// 从数据库取出图片

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void GetImage(string imgid)

{

string sql = "SELECT ImageData, ImageType FROM ImageStore WHERE ID = " + imgid;

SqlConnection connection = Connection.getConnection();

SqlCommand command = new SqlCommand(sql, connection);

connection.Open();

SqlDataReader dr = command.ExecuteReader();

if (dr.Read())

{

Response.ContentType = dr["ImageType"].ToString();

Response.BinaryWrite((byte[])dr["ImageData"]);

}

connection.Close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。