C
c-s-c
Unregistered / Unconfirmed
GUEST, unregistred user!
IcoStream := TMemoryStream.Create;
aIcon := TIcon.Create;
aIcon.ReleaseHandle;
aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
aIcon.SaveToStream(IcoStream); //有图标保存
aIcon.Free;
我想将图标保存到内存流,再进行处理,但使用aIcon.SaveToStream保存的图标会失真,在网上找了个方法修改Graphics单元,
procedure WriteIcon(Stream: TStream; Icon: HICON; WriteLength: Boolean);
...
InternalGetDIBSizes(IconInfo.hbmColor, ColorInfoSize, ColorBitsSize, 16);
...
InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, 16);
把上面的两个16改成65536,然后删除Graphics.dcu,重新编译.
编译后图标就不正常了,如果现在只想保存到内存流里应该怎么写代码?程序没有窗体,是DOS下操作的程序.
aIcon := TIcon.Create;
aIcon.ReleaseHandle;
aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
aIcon.SaveToStream(IcoStream); //有图标保存
aIcon.Free;
我想将图标保存到内存流,再进行处理,但使用aIcon.SaveToStream保存的图标会失真,在网上找了个方法修改Graphics单元,
procedure WriteIcon(Stream: TStream; Icon: HICON; WriteLength: Boolean);
...
InternalGetDIBSizes(IconInfo.hbmColor, ColorInfoSize, ColorBitsSize, 16);
...
InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, 16);
把上面的两个16改成65536,然后删除Graphics.dcu,重新编译.
编译后图标就不正常了,如果现在只想保存到内存流里应该怎么写代码?程序没有窗体,是DOS下操作的程序.