There's only one function to use and you need to load the png file into memory before calling it. It'll return the image in an RGBA array. Example:
Code:
var
f: file;
fsize: longword;
buffer: pbyte;
ImageData: PPNGPixel;
ImageWidth,
ImageHeight:longint;
begin
AssignFile(f, 'some.png');
Reset(f, 1);
fsize := FileSize(f);
buffer := getmem(fsize);
blockread(f, buffer^, fsize);
CloseFile(f);
BeRoPNG.LoadPNG(buffer, fsize, ImageData, ImageWidth, ImageHeight, false);
writeln(ImageWidth, 'x', ImageHeight);
freemem(buffer);
freemem(ImageData);
I don't know allegro, but looks like the only thing you need to do is to create a 32 bit bitmap (al_bitmap) and copy the read data into its line pointers (see https://www.allegro.cc/manual/4/api/...allegro/bitmap )
Bookmarks