Delphi中GetPixel和Canvas.Pixels之间的区别

Mah*_*led 5 delphi

Api功能"GetPixel"比Canvas.Pixels更快吗?

Rit*_*tra 6

它应该是相同的:

function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
  RequiredState([csHandleValid]);
  GetPixel := Windows.GetPixel(FHandle, X, Y);
end;
Run Code Online (Sandbox Code Playgroud)


And*_*and 2

GetPixel 函数非常慢!如果您需要高性能(甚至可接受)的性能,则应使用 ScanLine 属性。ScanLine[y] 是指向位图中第 y 行像素的指针,以 PixelFormat 属性指定的格式进行编码。例如,对于 24 位位图,该行的格式为

B1 G1 R1 B2 G2 R2 ... Bn Gn Rn

如果位图的宽度为nBi、Gi 和 Ri 分别是像素i的蓝色、绿色和红色强度(以字节为单位)。