Perpustakaan Igdiplus yang dimodifikasi untuk Lazarus, Codetyphon dan Delphi.
Perpustakaan Sumber Gratis dan Terbuka untuk Delphi. Ini memungkinkan implementasi cepat dan mudah dari aplikasi GDI+ yang kompleks, dalam kode ramah pascal alami.
Penulis: Boian Mitov
Halaman Beranda: http://mitov.com/products/igdi+#overview
http://mitov.com/products/igdi+#license
Perangkat lunak ini disediakan 'Aib adanya', tanpa garansi tersirat atau tersirat. Dalam hal apa pun penulis tidak akan bertanggung jawab atas segala kerusakan yang timbul dari penggunaan perangkat lunak ini.
Izin diberikan kepada siapa pun untuk menggunakan perangkat lunak ini untuk tujuan apa pun, termasuk aplikasi komersial, dan untuk mengubahnya dan mendistribusikannya secara bebas, tunduk pada pembatasan berikut:
Asal usul perangkat lunak ini tidak boleh salah diartikan, Anda tidak boleh mengklaim bahwa Anda menulis perangkat lunak asli. Jika Anda menggunakan perangkat lunak ini dalam suatu produk, pengakuan dalam dokumentasi produk akan dihargai tetapi tidak diperlukan.
Versi sumber yang diubah harus ditandai dengan jelas seperti itu, dan tidak boleh disalahartikan sebagai perangkat lunak asli.
Pemberitahuan ini tidak boleh dihapus atau diubah dari distribusi sumber apa pun.
Anda dapat melakukannya dengan kode saya apa pun yang Anda inginkan tanpa biaya dan tanpa batasan apa pun.
IGDIPlusHelpers.pas , IGDIPlusAPI_FPC.inc , IGDIPlusAPI_DCC.inc .Aplikasi demo igdiplus asli yang dikompilasi dengan Lazarus.

Demo tambahan - roda warna

Demo 1 Prosedur Utama.
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 ; Di direktori paket Anda akan menemukan paket untuk Delphi XE2 - 10.3 Rio. Instal paket yang sesuai (file DPK), lalu di opsi IDE, tambahkan ke direktori jalur pustaka dengan file IGDIPlus.pas .
Anda memiliki dua opsi:
packagesLazaruslazigdiplus.lpk .LazIGDIPlus ke paket yang diperlukan .IGDIPlus.pas ke opsi kompiler -> path -> file unit lainnya . Lanjutkan seperti dalam kasus Lazarus, hanya file dengan paket instalasi adalah packagesCodeTyphonlazigdiplus.ctpkg .
23.01.2020
Dukungan Delphi XE2 dan XE3.
Paket yang ditambahkan untuk Delphi XE2 - 10.3 Rio.
Menambahkan demo utama untuk xe2, demo roda warna untuk xe2 dan xe7.
Igdiplushelpers: Beberapa rutinitas pembantu terkait dengan konversi gaya palka.
19.01.2020
Menambahkan paket untuk Lazarus dan Codetyphon.
15.01.2020
Rilis awal dengan dukungan Pascal gratis.