1、前言
需要把PNG图片转化成数组的形式,供系统显示。但是delphi不支持直接处理PNG图片,所以需要第三方插件来实现。我使用的TPNGImage,接下针对TPNGImage组件及使用进行说明。
组件下载地址
2、TPNGImage组件常用属性说明
Height: 图片的高度。
Width:图片的宽度。
AlphaScanline:提供透明度信息;原型:AlphaScanline[const Index: Integer]: pByteArray; 参数说明:Index是指行数,最大值为图片的高度;类型值是指向Index行的Alpha值的指针,指向长度等于PNG图片的宽度,当PNG图片没有透明度时返回null.
Scanline:根据图片位深和颜色类型提供RGB或ARGB信息;原型:Scanline[const Index: Integer]: Pointer;参数说明:Index是指行数,最大值为图片的高度;类型值是指向Index行的RGB值的指针。验证没有得到Alpha值,不知道为什么,直接用了Pixels.
Pixels:提供RGB信息;原型:Pixels[const X, Y: Integer]: TColor; 参数说明:X横坐标值;Y纵坐标值;类型值是指定坐标的RGB值,值得注意,字节对应关系是从低字节到高字节是RGB。
Header:主要用到BitDepth和ColorType;
其他属性暂时没用到,感兴趣的小伙伴自行挖掘。
3.TPNGImage组件常用属性的使用
function Get_Png(Png_File_Name:string):string;
var
pPng_Buf