将JPG,BMP,PNG图片插入到ACCESS数据库

    xiaoxiao2021-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)