请问JPG图形的缩放(W和H变小变大)(50分)

  • 主题发起人 主题发起人 ebeggar
  • 开始时间 开始时间
E

ebeggar

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠:
放大bmp图象可以用StretchBlt函数,好像不能用于JPG哦,
请问对于JPG应该怎么操作呢?不用传成bmp再....吧
 
我做了一个DBimage给你了!全当奉献了!
把邮箱留下!发过去!(原码)
 
呵呵,cjc861真好!
ebeggar@163.com
 
我也做了一个DBImage,可能功能没你的强大,向你学习借鉴了
 
ebeggar我发了!你收一下!
 
Pls send me too? thanks !
yuki_@yeah.net
 
ok!不过有个bug,自己看者改吧!
 
收到,先谢谢!
你是将图形画到定长定宽的地方,很不错!

我现在希望的是将图形尺寸变小,这样存到数据库里占的地方大大变小(如几M到10几K),
对于bmp用StretchBlt就可以搞定,对于JPG呢?
 
ebeggar, Loadjpg(OpenDialog.FileName)就是处理jpg的,我估计你还没看完原码呢吧!
 
我仔细看看
你先load一个JPG文件,再把它存为同名bmp文件

procedure TDBEnhancedImage.Loadjpg(FileName:String);
var
JPG: TJPEGImage;
Stream: TFileStream;
GraphicField : TGraphicField;
begin
GraphicField := TGraphicField(DataSource.DataSet.FieldByName(DataField));
JPG := TJPEGImage.Create;
try
JPG.LoadFromFile(FileName);
with TBitmap.Create do
try
Assign(JPG);
Stream := TFileStream.Create(ChangeFileExt(FileName,'.BMP'),fmCreate);
try
SaveToStream(Stream);
if (DataSource.DataSet.State <> dsInsert) or (DataSource.DataSet.State <> dsEdit) then
DataSource.DataSet.Edit;
GraphicField.LoadFromStream(Stream) ;
finally
Stream.Free
end
finally
Free
end
finally
JPG.Free
end
end;
 
bug 因为是先把jpg,bmp调到内存流中,所以存到数据库的是原来jpg,bmp的大小,
我只是做了按比例缩放而已!你自己看着改吧!改好了给我来一份!共享万岁![:D]
 
呵呵,就是嘛,所以我说你的存储大小没变
 
只有JPG——>Bmp(缩小)——>JPG了
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部