Delphi - 使用透明度和索引调整PNG大小

时间:2014-05-05 17:05:25

标签: delphi resize png delphi-xe2

我有很多具有透明度的PNG文件,这些PNG fiels似乎已编入索引。 我想:

  • 将两个相同的PNG左右放置,两者之间留有空格
  • 使用平滑的调整大小滤镜(或Mitchell,Linear,Spline或其他)调整结果大小
  • 保持透明度和原稿颜色

你有一个例子吗?

1 个答案:

答案 0 :(得分:1)

此问题与其他PNG resize问题有关,但......

AFAIK,您无法调整索引图像的大小并保留原始调色板。调整图像大小需要混合颜色,特别是在缩小图像时。

PNGImage组件的原始作者(Delphi本机组件的基础)有一个论坛,他和其他人发布了关于如何使用PNGImage组件执行操作的代码片段。

在论坛被删除之前,我抓住了所有代码片段的副本,并将它们放在CodeGear Code Central网站上。

大多数(如果不是全部)都可以使用本机PNG图像并保持Alpha通道。

以下是包中包含的完整示例列表:

  • 平滑旋转PNG对象
  • 使用平滑算法调整TPNGObject的大小
  • 将一个PNG切成几个较小的PNG
  • 将图像另存为位图或png。
  • 样本块后代
  • 读取所有tEXt-Chunks并将值写入TStrings对象
  • 显示包含从PNG文件中提取的信息的消息框
  • 从PNG图像中查找并剪切块
  • 此方法将png转换为jpeg对象
  • 此方法将png转换为bmp对象
  • 将一个PNG叠加在另一个上(这使图像变为透明)
  • 垂直翻转png图像并保存回来
  • 在桌面上绘制png图像

以下是链接:CodeCentral PNG Methods