📄 savejpegimage.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 + -