Api功能“GetPixel”是否比Canvas.Pixels更快?
答案 0 :(得分:6)
它应该是相同的:
function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
RequiredState([csHandleValid]);
GetPixel := Windows.GetPixel(FHandle, X, Y);
end;
答案 1 :(得分:4)
如果您正在寻找比GetPixel / Canvas.Pixel []更好的功能,您应该查看Bitmap.ScanLine。唯一的麻烦是数据可能以多种方式排列,由Bitmap.PixelFormat
决定答案 2 :(得分:0)
GetPixel功能非常慢!如果您需要高性能(甚至可接受性),则应使用ScanLine属性。 ScanLine [y]是指向位图中第y行像素的指针,以PixelFormat属性指定的格式进行编码。例如,对于24位位图,该行具有格式
B1 G1 R1 B2 G2 R2 ... Bn Gn Rn
如果位图的宽度是 n 。 Bi,Gi和Ri分别是像素 i 的蓝色,绿色和红色强度,作为字节。