用Point 方法(按照長(zhǎng)整數(shù),返回在 Form 或 PictureBox 上所指定磅的紅-綠-藍(lán) (RGB) 顏色)取每個(gè)點(diǎn)的顏色存到數(shù)組里……貌似也不快就是了……
創(chuàng)新互聯(lián)建站專(zhuān)業(yè)為企業(yè)提供萍鄉(xiāng)網(wǎng)站建設(shè)、萍鄉(xiāng)做網(wǎng)站、萍鄉(xiāng)網(wǎng)站設(shè)計(jì)、萍鄉(xiāng)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、萍鄉(xiāng)企業(yè)網(wǎng)站模板建站服務(wù),10年萍鄉(xiāng)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
在access數(shù)據(jù)庫(kù)里將字段的類(lèi)型設(shè)置為ole對(duì)象
Public img As Byte() '圖片處理用的字節(jié)數(shù)組
img=My.Computer.FileSystem.ReadAllBytes(filePath)'filePath是你圖片文件的路徑
剩下的就是數(shù)據(jù)庫(kù)插入操作了
Dim?cn?As?New?OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=Data.mdb")
Dim?comm?As?OleDb.OleDbCommand
comm?=?New?OleDb.OleDbCommand(?_
"INSERT?INTO?Photo(BuFan_F,PhotoNo,Photo)?Values('"??Me.CobBuFan.Text.Trim??"','"??Me.txtNo.Text.Trim??"',@image)",?cn)
'向數(shù)據(jù)庫(kù)添加存儲(chǔ)了圖片數(shù)據(jù)的二進(jìn)制數(shù)組
comm.Parameters.Add("@image",?_
OleDb.OleDbType.Binary,?img.Length).Value?=?img
If?cn.State?=?ConnectionState.Closed?Then?cn.Open()?'打開(kāi)數(shù)據(jù)庫(kù)連接
comm.ExecuteNonQuery()?'執(zhí)行數(shù)據(jù)庫(kù)命令
If?cn.State?=?ConnectionState.Open?Then?cn.Close()?'關(guān)閉數(shù)據(jù)庫(kù)連接
MessageBox.Show("圖片成功保存到數(shù)據(jù)庫(kù)",?"完成",?MessageBoxButtons.OK,?MessageBoxIcon.Information)
我理解你
我寫(xiě)過(guò)圖片網(wǎng)絡(luò)傳輸?shù)暮湍阋蟮囊粯?/p>
為了不把圖片寫(xiě)到硬盤(pán) 又從硬盤(pán)讀取
而直接保存圖片內(nèi)存流 進(jìn)行網(wǎng)絡(luò)傳輸
從網(wǎng)絡(luò)讀取的圖片byte數(shù)組轉(zhuǎn)成圖片代碼如下
Dim mStream As New IO.MemoryStream
mStream.Write(b, 0, b.length) '這里b就是你的一維數(shù)組了
Dim Img As New Bitmap(mStream)
mStream.Close()
mStream.Dispose()
下面是把圖片保存到一維數(shù)組的方法
Dim Stream As New IO.MemoryStream
im.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg)
im = Nothing
Stream.Flush()
Dim b As Byte() = Stream.ToArray
Stream.Dispose()
這個(gè)做法應(yīng)該是圖方便的加密解密做法。按你的C#代碼來(lái)改的話(huà)是這樣的。
'Imports System.IO
Public Function MapPath(ByVal virtualPath As String) As String
' Return System.Web.Hosting.MapPath(virtualPath)
' 猜想是這個(gè) MapPath 函數(shù)
' 如果不是那就自己還原原來(lái)C#代碼里的那個(gè)MapPath
End Function
Public Sub GetImage()
Dim s As System.IO.Stream = System.IO.File.Open(MapPath("33.jpg"), System.IO.FileMode.Open)
Dim leng As Integer = 0
If s.Length Int32.MaxValue Then
leng = s.Length
End If
Dim by(leng) As Byte
s.Read(by, 0, leng) ' 把圖片讀到字節(jié)數(shù)組中
s.Close()
Dim str As String = Convert.ToBase64String(by) ' 把字節(jié)數(shù)組轉(zhuǎn)換成字符串
Dim sw As System.IO.StreamWriter = System.IO.File.CreateText(MapPath("11.txt")) ' 存入11.txt文件
sw.Write(str)
sw.Close()
sw.Dispose()
End Sub
' 把字符串還原成圖片
Public Sub CreateImg()
Dim sr As New System.IO.StreamReader(MapPath("11.txt"))
Dim s As String = sr.ReadToEnd()
sr.Close()
Dim buf As Byte() = Convert.FromBase64String(s) ' 把字符串讀到字節(jié)數(shù)組中
Dim ms As New System.IO.MemoryStream(buf)
Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)
img.Save(MapPath("12.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
ms.Close()
ms.Dispose()
End Sub
public Byte[] getphoto(string photopath) //參數(shù)圖片地址,主要用到的類(lèi)有FileStream
{
string str = photopath;
FileStream file = new FileStream(str, FileMode.Open, FileAccess.Read);
Byte[] bytBLOBData = new Byte[file.Length];
file.Read(bytBLOBData, 0, bytBLOBData.Length);
file.Close();
return bytBLOBData;
}//這是定義函數(shù)..
BMP圖像文件,并在VC + +環(huán)境下的GIF圖像文件轉(zhuǎn)換。首先分析了的BMP和GIF2圖像格式,然后在VC + +環(huán)境下建立自己的庫(kù)文件DIB.H和DIB.CPP,初始化的數(shù)據(jù)成員和函數(shù)成員使用,以實(shí)現(xiàn)BMP圖像的讀取,顯示和保存操作。理解的原則,基于LZW編碼算法的算法,在VC + +。同時(shí),通過(guò)先前建立的在BMP圖像庫(kù)中,該相關(guān)函數(shù)被調(diào)用時(shí),它可以找到對(duì)應(yīng)的特定的圖像數(shù)據(jù),從而B(niǎo)MP圖像數(shù)據(jù)被轉(zhuǎn)換成一個(gè)GIF圖象數(shù)據(jù)由LZW編碼,圖像格式轉(zhuǎn)換