try something like this
lazimg := TLazIntfImage.Create(256, 256);
drawer := TLazCanvas.create(lazimg);
drawer.Rectangle(0, 0, 255, 255);
FStream := TFileStream.Create('C:\test.png', fmOpenWrite);
FWrite := TFPWriterPNG.create;
FWrite.UseAlpha := False;
FWrite.WordSized := False;
lazimg.SaveToStream(FStream, FWrite);
drawer.Free;
FStream .Free;
FWrite.Free;
lazimg.Free;