Ⅰ 如何减小Delphi应用程序(EXE)的大小
01) 使用加壳工具(如 UPX,ASPack 等)
02) 使用 KOL
03) 不使用VCL来编写程序
04) 使用 ACL (API 控制库)
05) 使用 StripReloc
06) 去除运程调试信息与 TD32
07) 把允许的代码写到 DLL 中
08) 不要在设计时把图片放置在 Form 上,而是运行时加载
09) 使用被压缩的图片(使用JPG 而不用 BMP)
10) 在 DFM 文件中减少属性 !
Ⅱ delphi 怎么来压缩文件
在 delphi 里有多种方式来压缩文件:
1、直接调用系统的压缩软件,比如 winrar,用 ShellExecute / Winexec 执行命令行:
"C:/ProgramFiles/WinRAR/WinRAR.exe"a "d:c.rar""D:Music"
2、使用 delphi 提供的单元文件 zlib.pas 中相关的压缩函数:
示例代码:
//压缩函数
procereZip(varfs:TMemoryStream);
var
cs:TCompressionStream;
ms:TMemoryStream;
num:Integer;
begin
ifnot(Assigned(fs)and(fs.Size>0))thenExit;
num:=fs.Size;
ms:=TMemoryStream.Create;
cs:=TCompressionStream.Create(clMax,ms);
try
fs.SaveToStream(cs);
cs.Free;
//ms.Position:=0;
fs.Clear;
fs.WriteBuffer(num,sizeof(num));
fs.CopyFrom(ms,0);
finally
ms.Free;
end;
end;
3、使用专门的压缩控件,如VCLZip 等。
Ⅲ (DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数据库中压缩或怎么用程序实现
delphi 的图像缩放示例代码如下:
//将图片缩放至指定大小
procereSizeBmp(constSource,Dest:string;constx,y:integer);
var
aBmp,bBmp:tbitmap;
scalex,scaley:real;
begin
aBmp:=TBitmap.Create;
bBmp:=TBitmap.Create;
try
aBmp.LoadFromFile(Source);
scaley:=aBmp.Height/y;
scalex:=aBmp.Width/x;
bBmp.Width:=round(aBmp.Width/scalex);
bBmp.Height:=round(aBmp.Height/scaley);
bBmp.PixelFormat:=pfDevice;
SetStretchBltMode(bBmp.Canvas.Handle,COLORONCOLOR);
StretchBlt(bBmp.Canvas.Handle,0,0,bBmp.Width,bBmp.Height,
aBmp.Canvas.Handle,0,0,aBmp.Width,aBmp.Height,src);
bBmp.SaveToFile(Dest);
finally
aBmp.Free;
bBmp.Free;
end;
end;
procereTForm1.btn1Click(Sender:TObject);
begin
SizeBmp('e:1112.bmp','e:1112_small.bmp',640,480);
end;