首页
IT
登录
6mi
u
盘
搜
搜 索
IT
将JPG,BMP,PNG图片插入到ACCESS数据库
将JPG,BMP,PNG图片插入到ACCESS数据库
xiaoxiao
2021-12-14
18
将JPG,BMP,PNG图片插入到ACCESS数据库,Embarcadero RAD Studio XE6编译通过。
C/C++ code
?
1 2 #include <Vcl.Imaging.jpeg.hpp> #include <Vcl.Imaging.pngimage.hpp>
C/C++ code
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 //--------------------------------------------------------------------------- //双击打开图片 void __fastcall TfrmMain::img1DblClick(TObject *Sender) { if (dlgOpenPic1->Execute()) { String cFileName = dlgOpenPic1->FileName ; try { TMemoryStream* pMS = new TMemoryStream() ; TBitmap *pBMP = new TBitmap(); TJPEGImage *pJPG = new TJPEGImage(); TPngImage *pPNG = new TPngImage; unsigned char *Buffer = new unsigned char [2] ; int Type; pMS->Seek(0,soFromBeginning); pMS->Size = 0 ; pMS->LoadFromFile(cFileName) ; pMS->Position = 0 ; //pMS->Seek(0,soFromBeginning) ; pMS->ReadBuffer(Buffer,2) ; Type = ( "0x" +IntToHex(Buffer[0],2)+IntToHex(Buffer[1],2)).ToInt() ; pMS->Position = 0 ; switch (Type) { case 0xFFD8: //JPG文件 pJPG->LoadFromStream(pMS) ; break ; case 0x8950: //PNG文件 pPNG->LoadFromStream(pMS) ; pBMP->Assign(pPNG) ; pJPG->Assign(pBMP) ; pJPG->JPEGNeeded() ; break ; case 0x424D: //BMP文件 pBMP->LoadFromStream(pMS) ; pJPG->Assign(pBMP) ; pJPG->JPEGNeeded() ; break ; default : return ; } img1->Picture->Assign(pJPG) ; delete pBMP ; delete pJPG ; delete pPNG ; } catch (Exception &exception) { Application->ShowException(&exception); } } } //---------------------------------------------------------------------------
C/C++ code
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 //--------------------------------------------------------------------------- //数据插入 void __fastcall TfrmMain::btn11Click(TObject *Sender) { TMemoryStream *pMS = new TMemoryStream; String str ; qry1->Close() ; qry1->SQL->Clear() ; String sql = "insert into 信息 (名称,图片) " "values (:名称,:图片)" ; qry1->SQL->Add(sql) ; qry1->Parameters->ParamByName( "名称" )->Value = edt1->Text ; if (img1->Picture->Graphic != NULL) { img1->Picture->Graphic->SaveToStream(pMS); pMS->Position = 0; qry1->Parameters->ParamByName( "图片" )->LoadFromStream(pMS,ftBlob) ; } qry1->ExecSQL() ; qry1->Close() ; delete pMS; } //---------------------------------------------------------------------------
C/C++ code
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //--------------------------------------------------------------------------- //读取JPG void __fastcall TfrmMain::btn21Click(TObject *Sender) { TMemoryStream *pMS = new TMemoryStream ; TJPEGImage *pJPG = new TJPEGImage ; qry1->Close() ; qry1->SQL->Clear() ; String sql = "select * from 信息 where 名称='" + edt1->Text + "'" ; qry1->SQL->Add(sql) ; qry1->Open() ; TBlobField* pBF = (TBlobField*)qry1->FieldByName( "图片" ) ; pMS->Seek(0,soFromBeginning); pMS->Size = 0 ; pBF->SaveToStream(pMS) ; pMS->Seek(0,soFromBeginning); pJPG->LoadFromStream(pMS) ; img1->Picture->Assign(pJPG) ; qry1->Close() ; delete pJPG; delete pMS; } //---------------------------------------------------------------------------
转载请注明原文地址: https://ju.6miu.com/read-963233.html
专利
最新回复
(
0
)