我有许多具有透明度的 PNG 文件,这些 PNG 文件似乎已被索引。 我愿意:
- 将 2 个相同的 PNG 并排放置,两者之间留有空格
- 使用平滑调整大小过滤器(或 Mitchell、线性、样条或其他)调整结果大小
- 保持透明度和原始颜色
你有一个例子吗?
最佳答案
此问题与其他问题相关 PNG resize问题但是...
据我所知,您无法调整索引图像的大小并保留原始调色板。调整图像大小将需要混合颜色,尤其是在缩小图像时。
PNGImage 组件(Delphi native 组件的基础)的原始作者有一个论坛,他和其他人在其中发布了有关如何使用 PNGImage 组件执行操作的代码片段。
在论坛被关闭之前,我获取了所有代码片段的副本,并将它们放在 CodeGear 代码中心网站上。
大多数(如果不是全部)都适用于原生 PNG 图像,并且确实维护 Alpha channel 。
以下是包中包含的示例的完整列表:
- 平滑旋转 PNG 对象
- 使用平滑算法调整 TPNGObject 的大小
- 将一个 PNG 分割成多个较小的 PNG
- 将图像另存为位图或 png。
- 样本 block 后代
- 读取所有 tEXt-Chunk 并将值写入 TStrings 对象
- 显示一个消息框,其中包含从 PNG 文件中提取的信息
- 从 PNG 图像中查找并剪切 block
- 此方法将 png 转换为 jpeg 对象
- 此方法将 png 转换为 bmp 对象
- 将一个 PNG 覆盖在另一个 PNG 上(这会使图像半透明)
- 垂直翻转 png 图像并保存回来
- 在桌面上绘制 png 图像
关于Delphi - 使用透明度和索引调整 PNG 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477885/