您好,登錄后才能下訂單哦!
一、從圖片中獲得二進制值的基本方法:Image.Save 方法 (String,?ImageFormat)
這會將保存 Image 寫入指定的文件中指定的格式。
命名空間: System.Drawing
程序集: System.Drawing(位于 System.Drawing.dll)
語法:
public void Save( string filename, ImageFormat format)
參數
filename
Type: System.String
一個字符串,包含要保存此文件的名稱 Image。
format
Type: System.Drawing.Imaging.ImageFormat
用于此 ImageFormat 的 Image。(包括.JGP、png等格式)
異常
ArgumentNullException: filename 或 format 是 null.
ExternalException: 使用錯誤的圖像格式保存圖像。- 或 - 圖像已保存到同一文件從創建它。
二、Bitmap.Save 方法
命名空間: System.Drawing
組件: System.Drawing (於 System.Drawing.dll)
多載清單:
1、Save(Stream,?ImageCodecInfo,?EncoderParameters) :使用指定的編碼器和影像編碼器參數,將此影像儲存至指定的資料流。(繼承自 Image。)
2、Save(Stream,?ImageFormat) 將這個影像以指定的格式儲存至指定的資料流。(繼承自 Image。)
3、Save(String) 這會將儲存 Image 到指定的檔案或資料流。(繼承自 Image。)
4、Save(String,?ImageCodecInfo,?EncoderParameters) 這會將儲存 Image 至指定的檔案,以指定的編碼器和影像編碼器參數。(繼承自 Image。)
5、Save(String,?ImageFormat) 這會將儲存 Image 至指定的檔案中指定的格式。(繼承自 Image。)
三、將圖片保存在數據庫和從數據庫中還原程序的示例:
//存圖片
private void button1_Click(object sender, EventArgs e)
{
#region //從文件中讀取圖片
FileStream fs = new FileStream(@"D:\i\2017年資料\SPC\SPC\30.jpg", FileMode.Open, FileAccess.Read);
byte[] imagebytes = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));
SqlConnection mycn = new SqlConnection("server=192.168.1.14;database=fengyp;uid=sa;pwd=");
mycn.Open();
SqlCommand com = new SqlCommand("insert into dbo.試驗圖片存取 values(10,@ImageList)", mycn);
com.Parameters.Add("ImageList", SqlDbType.Image);
com.Parameters["ImageList"].Value = imagebytes;
com.ExecuteNonQuery();
mycn.Close();
#endregion
#region //從picturebox中讀取圖片
//將Image轉換成流數據,并保存為byte[]
MemoryStream mstream = new MemoryStream();
pictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] bytes = new Byte[mstream.Length];
mstream.Position = 0;
mstream.Read(bytes, 0, bytes.Length);
mstream.Close();
SqlConnection mycn = new SqlConnection("server=192.168.1.14;database=fengyp;uid=sa;pwd=");
mycn.Open();
SqlCommand com = new SqlCommand("insert into dbo.試驗圖片存取 values(11,@ImageList)", mycn);
com.Parameters.Add("ImageList", SqlDbType.Image);
com.Parameters["ImageList"].Value = bytes;
com.ExecuteNonQuery();
mycn.Close();
#endregion
}
//從數據庫讀取圖片并還原
private void button2_Click(object sender, EventArgs e)
{
byte[] imagebytes = null;
//打開數據庫
SqlConnection con = new SqlConnection("server=192.168.1.14;database=fengyp;uid=sa;pwd=");
con.Open();
SqlCommand com = new SqlCommand("select 圖片 from dbo.試驗圖片存取 where 序號=10", con);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(0);
}
dr.Close();
com.Clone();
con.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pictureBox2.Image = bmpt;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。