Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)10多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
Dim MyStream As New System.IO.MemoryStream
Me.PictureBox1.Image.Save(MyStream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim MyBytes(MyStream.Length) As Byte
MyStream.Read(MyBytes, 0, MyStream.Length)
MyStream.Close()
Dim strText As String
strText = BitConverter.ToString(MyBytes)
Me.TextBox1.Text = strText
End Sub
在access數(shù)據(jù)庫里將字段的類型設(shè)置為ole對象
Public img As Byte() '圖片處理用的字節(jié)數(shù)組
img=My.Computer.FileSystem.ReadAllBytes(filePath)'filePath是你圖片文件的路徑
剩下的就是數(shù)據(jù)庫插入操作了
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ù)庫添加存儲(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()?'打開數(shù)據(jù)庫連接
comm.ExecuteNonQuery()?'執(zhí)行數(shù)據(jù)庫命令
If?cn.State?=?ConnectionState.Open?Then?cn.Close()?'關(guān)閉數(shù)據(jù)庫連接
MessageBox.Show("圖片成功保存到數(shù)據(jù)庫",?"完成",?MessageBoxButtons.OK,?MessageBoxIcon.Information)
'容易,用api,查一查SetBitmapBits
'新建工程,增加一個(gè) command button , 一個(gè) picture box , 將圖片加載到 picture box.
'將代碼粘貼到 Form1
Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits() As Byte, PicInfo As BITMAP, Cnt As Long
Private Sub Command1_Click()
'Get information (such as height and width) about the picturebox
GetObject Picture1.Image, Len(PicInfo), PicInfo
'reallocate storage space
ReDim PicBits(1 To PicInfo.bmWidth * PicInfo.bmHeight * 3) As Byte
'Copy the bitmapbits to the array
GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
'Invert the bits
For Cnt = 1 To UBound(PicBits)
PicBits(Cnt) = 255 - PicBits(Cnt)
Next Cnt
'Set the bits back to the picture
SetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
'refresh
Picture1.Refresh
End Sub
首先引入System.IO命名空間
Imports System.IO
然后使用文件流來讀入數(shù)組:
Dim bytes() As Byte
Using fs As New FileStream(文件路徑,FileMode.Open)
ReDim bytes(fs.Length-1)
fs.Read(bytes,0,fs.Length)
fs.Close()
End Using
這樣bytes就是整個(gè)文件的所有字節(jié)了
從字節(jié)生成Image:
Dim img As Image = Image.FromStream(New MemoryStream(bytes))
img就是圖片了
VB.NET打開二進(jìn)制文件用fileopen完成,打開二進(jìn)制文件的形式為:openmode.binary
讀取二進(jìn)制文件用的是fileget方法,寫入二進(jìn)制文件用的是fileput方法。
應(yīng)用示例:將一批隨機(jī)數(shù)保存在一個(gè)dat文件中,然后再將其提取到文本框中。
二進(jìn)制文件的讀寫一批隨機(jī)數(shù)的存取,程序?yàn)椋?/p>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
open函數(shù)用來打開一個(gè)文件,其調(diào)用的一般形式為:
文件指針名=fopen(文件名,使用文件方式);
其中,
“文件指針名”必須是被說明為FILE
類型的指針變量;
“文件名”是被打開文件的文件名;
“使用文件方式”是指文件的類型和操作要求。
“文件名”是字符串常量或字符串?dāng)?shù)組。
例如:
FILE
*fp;
fp=("file
a","r");
其意義是在當(dāng)前目錄下打開文件file
a,只允許進(jìn)行“讀”操作,并使fp指向該文件。
又如:
FILE
*fphzk
fphzk=("c:\\hzk16","rb")
其意義是打開C驅(qū)動(dòng)器磁盤的根目錄下的文件hzk16,這是一個(gè)二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個(gè)反斜線“\\
”中的第一個(gè)表示轉(zhuǎn)義字符,第二個(gè)表示根目錄。
使用文件的方式共有12種,下面給出了它們的符號(hào)和意義。
文件使用方式
意義
“rt”
只讀打開一個(gè)文本文件,只允許讀數(shù)據(jù)
“wt”
只寫打開或建立一個(gè)文本文件,只允許寫數(shù)據(jù)
“at”
追加打開一個(gè)文本文件,并在文件末尾寫數(shù)據(jù)
“rb”
只讀打開一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù)
“wb”
只寫打開或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù)
“ab”
追加打開一個(gè)二進(jìn)制文件,并在文件末尾寫數(shù)據(jù)
“rt+”
讀寫打開一個(gè)文本文件,允許讀和寫
“wt+”
讀寫打開或建立一個(gè)文本文件,允許讀寫
“at+”
讀寫打開一個(gè)文本文件,允許讀,或在文件末追加數(shù)據(jù)
“rb+”
讀寫打開一個(gè)二進(jìn)制文件,允許讀和寫
“wb+”
讀寫打開或建立一個(gè)二進(jìn)制文件,允許讀和寫
“ab+”
讀寫打開一個(gè)二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù)
對于文件使用方式有以下幾點(diǎn)說明:
1)
文件使用方式由r,w,a,t,b,+六個(gè)字符拼成,各字符的含義是:
r(read):
讀
w(write):
寫
a(append):
追加
t(text):
文本文件,可省略不寫
b(banary):
二進(jìn)制文件
+:
讀和寫
2)
凡用“r”打開一個(gè)文件時(shí),該文件必須已經(jīng)存在,且只能從該文件讀出。
3)
用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個(gè)新文件。
4)
若要向一個(gè)已存在的文件追加新的信息,只能用“a”方式打開文件。但此時(shí)該文件必須是存在的,否則將會(huì)出錯(cuò)。
5)
在打開一個(gè)文件時(shí),如果出錯(cuò),fopen將返回一個(gè)空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的處理。因此常用以下程序段打開文件:
6)
if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror
on
open
c:\\hzk16
file
網(wǎng)站名稱:vb.net轉(zhuǎn)二進(jìn)制,vb十進(jìn)制轉(zhuǎn)二進(jìn)制代碼
URL鏈接:http://aaarwkj.com/article46/dssjdeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、建站公司、定制開發(fā)、網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)