A Biblioteca Igdiplus modificada para Lázaro, CoDETYPHON e Delphi.
A biblioteca de código aberto e gratuito para Delphi. Ele permite implementações rápidas e fáceis de aplicativos GDI+ complexos, em um código natural para o Pascal.
Autor: Boian Mitov
Página inicial: http://mitov.com/products/igdi+#overview
http://mitov.com/products/igdi+#license
Este software é fornecido 'como está', sem qualquer garantia expressa ou implícita. Em nenhum caso o autor será responsabilizado por quaisquer danos decorrentes do uso deste software.
A permissão é concedida a qualquer pessoa que use este software para qualquer finalidade, incluindo aplicativos comerciais, e alterá -lo e redistribuí -lo livremente, sujeito às seguintes restrições:
A origem deste software não deve ser deturpada, você não deve afirmar que escreveu o software original. Se você usar este software em um produto, um reconhecimento na documentação do produto será apreciado, mas não será necessário.
As versões de origem alterada devem ser claramente marcadas como tal e não devem ser deturpadas como sendo o software original.
Este aviso não pode ser removido ou alterado de qualquer distribuição de origem.
Você pode fazer com meu código o que quiser, sem nenhum custo e sem limitações.
IGDIPlusHelpers.pas , IGDIPlusAPI_FPC.inc , IGDIPlusAPI_DCC.inc .Aplicativo de demonstração do IGDiplus original compilado com Lázaro.

Demonstração adicional - roda de cores

Demo 1 Procedimento Principal.
procedure TForm1.FormPaint (Sender: TObject);
var
AGraphics : IGPGraphics;
AFont : IGPFont;
ALeftTopCorner : TPointF;
ARect : TIGPRectF;
ARect1 : TIGPRectF;
APath : IGPGraphicsPath;
begin
AGraphics := TIGPGraphics.Create( Canvas );
AGraphics.SmoothingMode := SmoothingModeAntiAlias;
AGraphics.TextRenderingHint := TextRenderingHintAntiAlias;
ALeftTopCorner := TPointF.Create( 20 , 20 );
AFont := TIGPFont.Create( ' Microsoft Sans Serif ' , 40 , [ fsBold ] );
ARect := AGraphics.GetStringBoundingBoxF( ' Welcome to IGDI+ ' , AFont, ALeftTopCorner );
ARect1 := GPInflateRectF( ARect, 10 , 10 );
// Draw a fancy rounded rectangle.
AGraphics.DrawRoundRectangleF(
TIGPPen.Create( TIGPLinearGradientBrush.Create( GPInflateRectF( ARect1, 2 , 2 ), aclRed, aclBlue, LinearGradientModeVertical ), 4 ),
TIGPPathGradientBrush.Create(
TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20 , 20 ) )
)
.SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0 , 0.3 , 1 ] )
.SetCenterPointF( TPointF.Create( 250 , 50 ))
.SetFocusScales( 0.87 , 0.2 ),
ARect1, TIGPSizeF.Create( 20 , 20 ) );
// Draw a text with semitransparent shadow.
AGraphics.DrawStringF( ' Welcome to IGDI+ ' ,
AFont,
TPointF.Create( 23 , 23 ),
TIGPSolidBrush.Create( MakeARGBColor( 50 , aclBlack )) )
.DrawStringF( ' Welcome to IGDI+ ' ,
AFont,
ALeftTopCorner,
TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, LinearGradientModeForwardDiagonal ));
// Draw a closed curve.
AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ),
[
TPointF.Create( 60 , 160 ),
TPointF.Create( 150 , 180 ),
TPointF.Create( 200 , 140 ),
TPointF.Create( 180 , 220 ),
TPointF.Create( 120 , 200 ),
TPointF.Create( 80 , 260 )
] );
// Draw a semitransparent star.
APath := TIGPGraphicsPath.Create();
APath.AddLinesF(
[
TPointF.Create( 75 , 0 ),
TPointF.Create( 100 , 50 ),
TPointF.Create( 150 , 50 ),
TPointF.Create( 112 , 75 ),
TPointF.Create( 150 , 150 ),
TPointF.Create( 75 , 100 ),
TPointF.Create( 0 , 150 ),
TPointF.Create( 37 , 75 ),
TPointF.Create( 0 , 50 ),
TPointF.Create( 50 , 50 )
] );
AGraphics.TranslateTransform( 420 , 30 )
.FillPath(
TIGPPathGradientBrush.Create( APath )
.SetCenterColor( MakeColor( 200 , 255 , 0 , 0 ))
.SetSurroundColors(
[
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 ),
MakeColor( 80 , 0 , 0 , 255 ),
MakeColor( 80 , 255 , 255 , 255 ),
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 ),
MakeColor( 80 , 0 , 0 , 255 ),
MakeColor( 80 , 255 , 255 , 255 ),
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 )
] ),
APath );
// Draw rotated ellipse.
AGraphics.ResetTransform()
.TranslateTransform( 300 , 160 )
.RotateTransform( 30 )
.DrawEllipseF(
TIGPPen.Create( aclRed, 3 ),
TIGPLinearGradientBrush.Create( TPointF.Create( 0 , 0 ), TPointF.Create( 20 , 20 ), aclYellow, aclGreen )
.SetWrapMode( WrapModeTileFlipX ),
0 , 0 , 200 , 80 );
end ; No diretório de pacotes, você encontrará pacotes para Delphi XE2 - 10.3 Rio. Instale o pacote apropriado (arquivo dpk) e, nas opções do IDE, adicione ao diretório do caminho da biblioteca com o arquivo IGDIPlus.pas .
Você tem duas opções:
packagesLazaruslazigdiplus.lpk .LazIGDIPlus aos pacotes necessários .IGDIPlus.pas às opções do compilador -> caminhos -> outros arquivos da unidade . Prossiga como no caso de Lazarus, apenas o arquivo com o pacote de instalação é packagesCodeTyphonlazigdiplus.ctpkg .
23.01.2020
Suporte Delphi Xe2 e Xe3.
Pacotes adicionados para Delphi Xe2 - 10.3 Rio.
Adicionado demonstração principal para XE2, demonstração da roda colorida para XE2 e XE7.
Igdiplushelpers: algumas rotinas auxiliares relacionadas à conversão de hatchstyle.
19.01.2020
Adicionados pacotes para Lázaro e CoDETYPHON.
15.01.2020
Lançamento inicial com suporte grátis para Pascal.