使用ADO ACCESS ImageEn 动态,显示图片,导入图片,导出图片,删除图片

本文介绍如何使用ADO ACCESS结合ImageEn库来处理数据库中的图片字段,包括显示图片、导入、导出和删除图片的操作。示例代码详细说明了每个功能的实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//使用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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值