请高手指点是TImage中图片保存的问题还是图片获取问题。 ( 积分: 100 )

  • 主题发起人 主题发起人 bdexxend
  • 开始时间 开始时间
B

bdexxend

Unregistered / Unconfirmed
GUEST, unregistred user!
在Winxp以下系统中用以下代码取的图片大小为4.05K,图片未压缩。而在部分Win2000 2003系统中取得的图片为2.06K,图片已经压缩。我需要取得未压缩的图片。
Timage
height:32
width:32

procedure TForm1.Button1Click(Sender: TObject);
var
icon: hIcon;
begin
Image1.Picture := nil;
icon := GetIcon('c:/1.exe');
DrawIcon(Image1.canvas.Handle, 0, 0, icon);
Image1.Picture.SaveToFile(exefilepath + 'temp.bmp');
end;

function TForm1.GetIcon(fName:String): hicon;
const
Flags = SHGFI_ICON;
var
FileInfo: TSHFileInfo;
Begin
SHGetFileInfo(PChar(fName),0, FileInfo, SizeOf(FileInfo), Flags);
Result := FileInfo.hIcon ;
end;
 
在Winxp以下系统中用以下代码取的图片大小为4.05K,图片未压缩。而在部分Win2000 2003系统中取得的图片为2.06K,图片已经压缩。我需要取得未压缩的图片。
Timage
height:32
width:32

procedure TForm1.Button1Click(Sender: TObject);
var
icon: hIcon;
begin
Image1.Picture := nil;
icon := GetIcon('c:/1.exe');
DrawIcon(Image1.canvas.Handle, 0, 0, icon);
Image1.Picture.SaveToFile(exefilepath + 'temp.bmp');
end;

function TForm1.GetIcon(fName:String): hicon;
const
Flags = SHGFI_ICON;
var
FileInfo: TSHFileInfo;
Begin
SHGetFileInfo(PChar(fName),0, FileInfo, SizeOf(FileInfo), Flags);
Result := FileInfo.hIcon ;
end;
 
问题怎么解决了!高手支个招!
 
应该是GetIcon或DrawIcon在不同的操作系统,用的不用的DLL吧
 
那有什么办法能控制他是一样的呢?或可用其它办法取得呢?
 
后退
顶部