GDI+学习(1)抗锯齿方法的使用

主要使用GDIPlus中提供的抗锯齿的方法,主要有Delphi和C++下的应用代码。采用的GDI+为1.0。在D2007中初次使用GDI+时,会提示DirectDraw文件中PDirectDrawSurface的一些错误,修改方法为将:

{$IFDEF COMPILER5_UP} PDirectDrawSurface = Pointer; {$ELSE} PDirectDrawSurface = IDirectDrawSurface; {$ENDIF}

修改为:

{$IFDEF COMPILER5_UP} PDirectDrawSurface = Pointer; {$ELSE} PDirectDrawSurface = Pointer; {$ENDIF}

Delphi GDI+抗锯齿方法的使用:

var graphics : TGPGraphics; pen: TGPPen; begin graphics := TGPGraphics.Create(DC); Graphics.SetSmoothingMode(SmoothingModeAntiAlias);//.SmoothingMode := TGPSmoothingMode(5); pen:= TGPPen.Create(MakeColor(255, 0, 0, 255)); pen.SetWidth(1); graphics.DrawLine(pen, 0, 50, 200, 100); graphics.Free; pen.Free; end;

 SetSmoothingMode方法可使用参数如下: SmoothingModeInvalid  SmoothingModeDefault SmoothingModeHighSpeed SmoothingModeHighQuality SmoothingModeNone SmoothingModeAntiAlias 

参数说明如下:

SmoothingModeInvalid  =-1;{指定一个无效模式}
SmoothingModeDefault  =0; {指定不消除锯齿}
SmoothingModeHighSpeed =1; {指定高速度、低质量呈现}
SmoothingModeHighQuality=2; {指定高质量、低速度呈现}
SmoothingModeNone    =3; {指定不消除锯齿}
SmoothingModeAntiAlias =4; {指定消除锯齿的呈现}

更多内容见万一的博客:

http://www.pujipc.com/html/biancheng/Delphi/20090205/11493.html

C++中的使用方法如下:

#include #include #pragma comment(lib, "gdiplus.lib") using namespace Gdiplus; // Initialize GDI+ GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); HDC hdc = GetDC(hWnd); Graphics graphics(hdc); Pen pen(Color(255, 0x00, 0x00, 0x00), 0.5); graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed); graphics.DrawLine(&pen, 150, 10, 250, 30); graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias); graphics.DrawLine(&pen, 300, 10, 400, 30); graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighQuality); graphics.DrawLine(&pen, 450, 10, 550, 30);

 

你可能感兴趣的:(delphi,GDI+)