Ⅰ 如何減小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;