如何对ACCess中的图片进行压缩?(100分)

  • 主题发起人 主题发起人 dingxiaohui
  • 开始时间 开始时间
D

dingxiaohui

Unregistered / Unconfirmed
GUEST, unregistred user!
对ACCESS中的相片怎么样压缩才最有效,容量才会更少?
我做的压缩的图片,好像压缩不了多少?请高人指点。。。。。。
if dlgpic.Execute then
begin
if pos('.bmp', dlgpic.FileName) > 0 then
begin
reduce(dlgpic.FileName);
Image1.Picture.Bitmap.LoadFromFile(dlgpic.FileName);
end else
begin
reduce(dlgpic.FileName);
ConvertJPGtoBMP(dlgpic.FileName);
Image1.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName) + '1.bmp');
end;
end;

procedure reduce(FileName: string);
//处理缩小图片
var
bit1, bit2: TBitmap;
Picture: TPicture;
begin
Picture := TPicture.Create;
Picture.LoadFromFile(FileName);
bit1 := TBitmap.Create;
bit2 := TBitmap.Create;
try
bit1.Assign(Picture.Graphic);
bit2.Height := 160;
bit2.Width := 125;
//
SetStretchBltMode(bit2.Canvas.Handle, HALFTONE);
StretchBlt(bit2.Canvas.Handle, 0, 0, bit2.Width, bit2.Height, bit1.Canvas.Handle, 0, 0, bit1.Width, bit1.Height, SRCCOPY);
Picture.Graphic.Assign(bit2);
Picture.SaveToFile(FileName);
finally
bit1.Free;
bit2.Free;
Picture.Free;
end;
end;

function TfrmGBGLD.ConvertJPGtoBMP(sFileName: string): TBitmap;
var
J: TJpegImage;
I: TBitmap;
S: string;
begin
S := sFileName;
I := TBitmap.Create;
try
J := TJpegImage.Create;
try
J.LoadFromFile(S);
I.Assign(J);
finally
J.Free;
end;
S := ChangeFileExt(ExtractFilePath(Application.ExeName) + '1', '.bmp');
I.SaveToFile(S);
Application.ProcessMessages;
finally
I.Free;
end;
end;
 
有没有人回答我呀????在线等呀!
 
也没有看到保存到 Access 数据库的代码。
可以用 TCompressionStream 压缩来减少数据量的。
 
如果仅仅是照片,还是用JPEG格式比较好,压缩率高,同时又好控制。
 
后退
顶部