ห้องสมุด IgDiplus ที่ได้รับการแก้ไขสำหรับ Lazarus, Codetyphon และ Delphi
ไลบรารีฟรีและโอเพ่นซอร์สสำหรับ Delphi ช่วยให้การใช้งานแอปพลิเคชัน GDI+ ที่ซับซ้อนอย่างรวดเร็วและง่ายดายในรหัสที่เป็นมิตรกับปาสคาลตามธรรมชาติ
ผู้แต่ง: Boian Mitov
หน้าแรก: http://mitov.com/products/igdi+#overview
http://mitov.com/products/igdi+#license
ซอฟต์แวร์นี้มีให้ 'เป็น' โดยไม่มีการรับประกันโดยชัดแจ้งหรือโดยนัย ไม่ว่าในกรณีใดผู้เขียนจะต้องรับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้ซอฟต์แวร์นี้
ได้รับอนุญาตให้ทุกคนใช้ซอฟต์แวร์นี้เพื่อวัตถุประสงค์ใด ๆ รวมถึงแอปพลิเคชันเชิงพาณิชย์และเพื่อแก้ไขและแจกจ่ายซ้ำได้อย่างอิสระภายใต้ข้อ จำกัด ดังต่อไปนี้:
ที่มาของซอฟต์แวร์นี้จะต้องไม่ถูกบิดเบือนคุณต้องไม่อ้างว่าคุณเขียนซอฟต์แวร์ต้นฉบับ หากคุณใช้ซอฟต์แวร์นี้ในผลิตภัณฑ์การรับทราบในเอกสารประกอบผลิตภัณฑ์จะได้รับการชื่นชม แต่ไม่จำเป็น
เวอร์ชันแหล่งที่เปลี่ยนแปลงจะต้องทำเครื่องหมายไว้อย่างชัดเจนและจะต้องไม่ถูกบิดเบือนว่าเป็นซอฟต์แวร์ดั้งเดิม
ประกาศนี้อาจไม่ถูกลบหรือเปลี่ยนแปลงจากการกระจายแหล่งใด ๆ
คุณสามารถทำได้กับรหัสของฉันสิ่งที่คุณต้องการโดยไม่มีค่าใช้จ่ายและไม่มีข้อ จำกัด ใด ๆ
IGDIPlusHelpers.pas , IGDIPlusAPI_FPC.inc , IGDIPlusAPI_DCC.incแอปพลิเคชั่นสาธิต Igdiplus ดั้งเดิมที่รวบรวมด้วย Lazarus

การสาธิตเพิ่มเติม - วงล้อสี

การสาธิต 1 ขั้นตอนหลัก
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 ; ในไดเรกทอรี แพ็คเกจ คุณจะพบแพ็คเกจสำหรับ Delphi XE2 - 10.3 Rio ติดตั้งแพ็คเกจที่เหมาะสม (ไฟล์ DPK) จากนั้นในตัวเลือก IDE เพิ่มลงในไดเรกทอรี Path Library ด้วยไฟล์ IGDIPlus.pas
คุณมีสองตัวเลือก:
packagesLazaruslazigdiplus.lpkLazIGDIPlus ลงใน แพ็คเกจที่จำเป็นIGDIPlus.pas ไปยัง ตัวเลือกคอมไพเลอร์ -> พา ธ -> ไฟล์หน่วยอื่น ๆ ดำเนินการในกรณีของ Lazarus เฉพาะไฟล์ที่มีแพ็คเกจการติดตั้งคือ packagesCodeTyphonlazigdiplus.ctpkg
23.01.2020
การสนับสนุน Delphi XE2 และ XE3
เพิ่มแพ็คเกจสำหรับ Delphi XE2 - 10.3 Rio
เพิ่มการสาธิตหลักสำหรับ XE2 การสาธิต วงล้อสี สำหรับ XE2 และ XE7
IgDiplushelpers: กิจวัตรผู้ช่วยสองสามคนที่เกี่ยวข้องกับการแปลง HatchStyle
19.01.2020
เพิ่มแพ็คเกจสำหรับ Lazarus และ Codetyphon
15.01.2020
การเปิดตัวครั้งแรกพร้อมการสนับสนุน Pascal ฟรี