我有一张PNG图片,我试图在设计时加载到TImageList
:
我有一个图像列表,然后我尝试打开我的png:
添加后,显示的图片不正确:
我错过了打开文件的哪些步骤?
任何人都希望看到的其他变化?
答案 0 :(得分:4)
问题是我使用的是GraphicEx library:
中包含的功能procedure Stretch(NewWidth, NewHeight: Cardinal; Filter: TResamplingFilter;
Radius: Single; Source: TBitmap);
对此函数的调用是在 ResizeGraphic 辅助函数中抽象出来的。
问题是GraphicEx
还有自己的PNG
实施:
TPNGGraphic = class(TGraphicExGraphic)
然后在运行时以可用的文件格式注册:
initialization
RegisterFileFormat('png', gesPortableNetworkGraphic, '',
[ftRaster], False, True, TPNGGraphic);
我们使用一些自定义Delphi组件。
其中一些组件直接或间接导入对GraphicEx
的引用。这意味着GraphicEx
正在接管设计中IDE内存在的任何类的PNG
文件类型的处理。
解决方案是定义RegisterFileFormat
initialization
部分中的所有GraphicEx.pas
行
{$ifdef PortableNetworkGraphic}
RegisterFileFormat('png', gesPortableNetworkGraphic, '', [ftRaster], False, True, TPNGGraphic);
{$endif}
然后重新构建我的所有运行时和设计时包。
完成后,IDE重新启动:
注意:任何已发布到公共领域的代码。无需归属。