⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 savejpegimage.pas

📁 《delphi数据库设计与实例开发》随书光盘
💻 PAS
字号:
unit SaveJpegImage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtDlgs, DB, DBTables, StdCtrls, ExtCtrls,Jpeg;

type
  TForm1 = class(TForm)
    GroupBox2: TGroupBox;
    Panel1: TPanel;
    Image2: TImage;
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Image1: TImage;
    ListBox1: TListBox;
    Table1: TTable;
    OpenPictureDialog1: TOpenPictureDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
   image2.Picture.LoadFromFile(openpicturedialog1.FileName );
 Button2.Enabled:=True;
 Button1.Enabled:=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
var ext:String;
begin
if image2.Picture.Graphic<>nil then //避免image2中无图像保存出错
  begin
  with Table1 do
  begin
  Insert;
  FieldByName('Name').AsString:=ExtractFileName((OpenPictureDialog1.FileName));
  FieldByName('ImageData').Assign(image2.Picture.Graphic);
  {判断存到数据库的图像格式 }
  ext:=ExtractFileExt(OpenpictureDialog1.FileName ); //取出文件扩展名
  if uppercase(ext) = '.BMP' THEN
  FieldByName('Isbmp').VALUE := 1 //BMP型图像数据
  else if (UPPERCASE(EXT) = '.JPEG') OR (UPPERCASE(EXT) = '.JPG') THEN
   FieldByName('Isbmp').VALUE := 0; //JPEG型图像数据
  Post ;
  end;
  with Table1 do
   begin
   ListBox1.Clear;
   First;
   while not Eof do
    begin
    ListBox1.Items.Add(FieldByName('Name').AsString);
    next;
   end;
  Button2.Enabled:=False;
  Button1.Enabled:=True;
 end;
  end;

end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
 jpegimage:TJPEGImage;
begin
 with Table1 do
 begin
  Locate('Name',ListBox1.Items[ListBox1.ItemIndex],[loPartialKey]);
    if FieldByName('Isbmp').AsBoolean=True then //BMP型图像数据
     image1.Picture.bitmap.Assign(fieldbyname('ImageData'))
   else if  fieldbyname('Isbmp').AsBoolean=False then //JPEG型图像数据
    begin
     jpegimage:= TJPEGImage.Create ; //通过TJPREGImage对象将图像显示在image1
       try
         jpegimage.Assign(fieldbyname('ImageData'));
         image1.Picture.Graphic :=jpegimage;
       finally
     jpegimage.Free ;
    end;
   end;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
try
 Table1.DatabaseName:='DBDEMOS';
 Table1.TableName:='Image1.db';
 Table1.Active:=true;
 except
 On E:EdatabaseError do
 ShowMessage(E.Message);
 end;
  with Table1 do
   begin
   First;
   while not Eof do
    begin
    ListBox1.Items.Add(FieldByName('Name').AsString);
    next;
   end;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -