首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TImageList中加入PNG?

如何在TImageList中加入PNG?
EN

Stack Overflow用户
提问于 2014-10-06 15:13:08
回答 1查看 525关注 0票数 0

我有一个PNG映像,我试图在设计时加载到TImageList中:

我有一个图像列表,然后尝试打开我的png:

添加后,出现的图像不正确:

我丢失了打开文件的哪些步骤?

编辑:让我们尝试更多的文件

编辑:更多设置

还有其他人想看的变体吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-06 21:27:11

问题是我使用了GraphicEx库中包含的一个函数

代码语言:javascript
复制
procedure Stretch(NewWidth, NewHeight: Cardinal; Filter: TResamplingFilter; 
      Radius: Single; Source: TBitmap);

对该函数的调用是在ResizeGraphic助手函数中抽象的。

问题是GraphicEx也有自己的PNG实现:

代码语言:javascript
复制
TPNGGraphic = class(TGraphicExGraphic)

然后在运行时将其注册为可用的文件格式:

代码语言:javascript
复制
initialization
RegisterFileFormat('png', gesPortableNetworkGraphic, '',
      [ftRaster], False, True, TPNGGraphic);

输入自定义控件

我们使用一些定制的Delphi组件。

其中一些组件直接或间接地导入对GraphicEx的引用。这意味着GraphicEx将接管PNG文件类型的处理,而不是设计时IDE中存在的任何类。

解决方案是在RegisterFileFormatinitialization部分中定义所有的GraphicEx.pas行。

代码语言:javascript
复制
{$ifdef PortableNetworkGraphic}
RegisterFileFormat('png', gesPortableNetworkGraphic, '', [ftRaster], False, True, TPNGGraphic);
{$endif}

然后重新构建我所有的运行时和设计时包。

一旦完成,IDE就会重新启动:

注意事项:发布到公共域中的任何代码。不需要归属。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26219316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档