procedure GenChart(AWidth, AHeight: Integer; APngResult: TStream);
var
ABgraBitmap : TBGRANoGUIBitmap;
ARasterImage : TRasterImage;
AStream : TMemoryStream;
ABMPReader : TFPReaderBMP;
AChart: TChart;
begin
if (not Assigned(APngResult))
then Exit;
AChart := TChart.Create(nil);
AChart.Width := AWidth;
AChart.Height := AHeight;
try
AStream := TMemoryStream.Create;
ABMPReader := TFPReaderBMP.Create;
ARasterImage := AChart.SaveToImage(TBitmap); // <<---- This will generate the error
try
ARasterImage.SaveToStream(AStream);
AStream.Position:=0;
ABgraBitmap := TBGRANoGUIBitmap.Create;
try
ABgraBitmap.LoadFromStream(AStream, ABMPReader);
ABgraBitmap.FontFullHeight:=22;
{$IFDEF WINDOWS}
ABgraBitmap.FontName:='C:\windows\fonts\arial.ttf';
{$ELSE}
ABgraBitmap.FontName:='/home/maarten/Documents/lazarus-components/bgrabitmap-master/test/test4other/arial.ttf';
{$ENDIF}
ABgraBitmap.TextOut(50,10, TimeToStr(Now), CSSRed);
APngResult.Position := 0;
ABgraBitmap.SaveToStreamAsPng(APngResult);
finally
ABgraBitmap.Free;
end;
finally
ARasterImage.Free;
end;
finally
AStream.Free;
ABMPReader.Free;
AChart.Free;
end;
end;