ASP.NET使用数据库存储、读取并修改图片
| 列名 | 類型 | 目的 |
| ID | Integer | 主鍵ID |
| IMGTITLE | Varchar(50) | 圖片的標題 |
| IMGTYPE | Varchar(50) | 圖片類型. ASP.NET要以辨認的類型 |
| IMGDATA | Image | 用于存儲二進制數(shù)據(jù) |
?
==============================================================================================?????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>
??????? /// 構(gòu)造函數(shù)
??????? /// </summary>
??????? public ChangeImageSize()
??????? {
??????? }
??????????????
??????? /// <summary>
??????? /// 傳入一張圖片,并設(shè)定它的大小
??????? /// </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>
??? /// 保存圖片到數(shù)據(jù)庫
??? /// </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>
??? /// 從數(shù)據(jù)庫取出圖片
??? /// </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();
??????? }
?
}
轉(zhuǎn)載于:https://www.cnblogs.com/carekee/articles/2083425.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的ASP.NET使用数据库存储、读取并修改图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC 最佳开发实践(1
- 下一篇: asp.net ajax控件工具集 Au