- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Classes, httpdefs, fpHTTP, fpWeb, Graphics;
type
{ TFPWebModule1 }
TFPWebModule1 = class(TFPWebModule)
procedure DataModuleRequest(Sender: TObject; ARequest: TRequest;
AResponse: TResponse; var Handled: Boolean);
private
public
end;
var
FPWebModule1: TFPWebModule1;
implementation
{$R *.lfm}
{ TFPWebModule1 }
procedure TFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest;
AResponse: TResponse; var Handled: Boolean);
var
png: Graphics.TPortableNetworkGraphic;
begin
png := Graphics.TPortableNetworkGraphic.Create;
try
png.SetSize(100, 100);
png.Canvas.TextOut(10, 10, 'Hello world!');
AResponse.ContentType:='image/png';
AResponse.ContentStream := TMemoryStream.Create;
png.SaveToStream(AResponse.ContentStream);
AResponse.ContentLength := AResponse.ContentStream.Size;
AResponse.SendContent;
AResponse.ContentStream := nil;
finally
png.Free;
end;
Handled:=true;
end;
initialization
RegisterHTTPModule('TFPWebModule1', TFPWebModule1);
end.
По непонятным для меня причинам падает на строке png.SetSize с ошибкой External: SIGSEGV.