//使用ADO ACCESS ImageEn来处理图片字段希望大家不要少走冤路了!
//含显示,导入,导出,删除图片
#include <vcl.h >
#pragma hdrstop
#include "ImageEnDbViewUnit.h"
//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "dbimageen"
#pragma link "ieopensavedlg"
#pragma link "ieview"
#pragma link "imageen"
#pragma link "imageenview"
#pragma link "imageenio"
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//所使用控件ADOConnected,ADOTabel,DataSource,Label1
//这三个由ImageEn包含的,ImageEnDBView1OpenImageEnDialog,SaveImageEnDialog1
//数据库用ACCESS,其中一个图片字段要先使用ADOTable1- >Active =true;一下,设计完后取消
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOTable1- >Active =true;
}
//导入图片到当前字段,并保存(支持JPG,BMP等多种格式导入)------
void __fastcall TForm1::ImportBtnClick(TObject *Sender)
{
if (OpenImageEnDialog1- >Execute())
{ImageEnDBView1- >IO- >LoadFromFile(OpenImageEnDialog1- >FileName);
ImageEn1- >IO- >LoadFromFile( OpenImageEnDialog1- >FileName);
// ImageEnDBView1- >Update();
ADOTable1- >Edit();
TMemoryStream *dataStream = new TMemoryStream();
ImageEnDBView1- >IO- >SaveToStreamJpeg(dataStream);
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >LoadFromStream(dataStream);
ADOTable1- >Post();
delete dataStream; }
}
//一个记录八个图片字段,一个一个显示------------------------
void __fastcall TForm1::NextBtnClick(TObject *Sender)
{ if (i==8) i=0;
i++;
ImageEnDBView1- >AutoDisplay = true;
ImageEnDBView1- >AutoStretch = true;
//ImageEnDBView1- >DataSource = DataSource1;
ImageEnDBView1- >DataField = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName;
TMemoryStream *dataStream = new TMemoryStream();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >SaveToStream(dataStream);
if (dataStream- >Size <100) {ImageEnDBView1- >Clear();
ImageEnDBView1- >AutoStretch = false;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Size = 40;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Color = clRed;
ImageEnDBView1- >Bitmap- >Canvas- >TextOutA(0,20," 无 图 片 ");
}
//ImageEnDBView1- >LoadPicture();
ImageEnDBView1- >Update();//更新显示图片
Label1- >Caption = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName+" size: "+IntToStr(dataStream- >Size);
delete dataStream;
}
//导出图片,支持JPG,BMP等多种格式导出-----------------------------------------------
void __fastcall TForm1::OutputBtnClick(TObject *Sender)
{
if (SaveImageEnDialog1- >Execute())
ImageEnDBView1- >IO- >SaveToFile(SaveImageEnDialog1- >FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DeleteBtnClick(TObject *Sender)//删除字段的图片
{ ADOTable1- >Edit();
ImageEnDBView1- >Clear();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >Clear();
ADOTable1- >Post();
}
//含显示,导入,导出,删除图片
#include <vcl.h >
#pragma hdrstop
#include "ImageEnDbViewUnit.h"
//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "dbimageen"
#pragma link "ieopensavedlg"
#pragma link "ieview"
#pragma link "imageen"
#pragma link "imageenview"
#pragma link "imageenio"
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//所使用控件ADOConnected,ADOTabel,DataSource,Label1
//这三个由ImageEn包含的,ImageEnDBView1OpenImageEnDialog,SaveImageEnDialog1
//数据库用ACCESS,其中一个图片字段要先使用ADOTable1- >Active =true;一下,设计完后取消
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOTable1- >Active =true;
}
//导入图片到当前字段,并保存(支持JPG,BMP等多种格式导入)------
void __fastcall TForm1::ImportBtnClick(TObject *Sender)
{
if (OpenImageEnDialog1- >Execute())
{ImageEnDBView1- >IO- >LoadFromFile(OpenImageEnDialog1- >FileName);
ImageEn1- >IO- >LoadFromFile( OpenImageEnDialog1- >FileName);
// ImageEnDBView1- >Update();
ADOTable1- >Edit();
TMemoryStream *dataStream = new TMemoryStream();
ImageEnDBView1- >IO- >SaveToStreamJpeg(dataStream);
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >LoadFromStream(dataStream);
ADOTable1- >Post();
delete dataStream; }
}
//一个记录八个图片字段,一个一个显示------------------------
void __fastcall TForm1::NextBtnClick(TObject *Sender)
{ if (i==8) i=0;
i++;
ImageEnDBView1- >AutoDisplay = true;
ImageEnDBView1- >AutoStretch = true;
//ImageEnDBView1- >DataSource = DataSource1;
ImageEnDBView1- >DataField = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName;
TMemoryStream *dataStream = new TMemoryStream();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >SaveToStream(dataStream);
if (dataStream- >Size <100) {ImageEnDBView1- >Clear();
ImageEnDBView1- >AutoStretch = false;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Size = 40;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Color = clRed;
ImageEnDBView1- >Bitmap- >Canvas- >TextOutA(0,20," 无 图 片 ");
}
//ImageEnDBView1- >LoadPicture();
ImageEnDBView1- >Update();//更新显示图片
Label1- >Caption = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName+" size: "+IntToStr(dataStream- >Size);
delete dataStream;
}
//导出图片,支持JPG,BMP等多种格式导出-----------------------------------------------
void __fastcall TForm1::OutputBtnClick(TObject *Sender)
{
if (SaveImageEnDialog1- >Execute())
ImageEnDBView1- >IO- >SaveToFile(SaveImageEnDialog1- >FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DeleteBtnClick(TObject *Sender)//删除字段的图片
{ ADOTable1- >Edit();
ImageEnDBView1- >Clear();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >Clear();
ADOTable1- >Post();
}