Api函数"GetPixel“比Canvas.Pixels快吗?
发布于 2010-03-12 22:26:11
GetPixel函数是非常慢的!如果您需要高(甚至可以接受)的性能,则应该使用ScanLine属性。ScanLiney是指向位图中第y行像素的指针,以PixelFormat属性指定的格式编码。例如,对于24位位图,行的格式为
B1 G1 R1 B2 G2 R2 ...Bn Gn Rn
如果位图的宽度是n.bi,则Gi和Ri分别是像素i的蓝色、绿色和红色强度,作为字节。
发布于 2010-03-12 17:57:22
它应该是相同的:
function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
RequiredState([csHandleValid]);
GetPixel := Windows.GetPixel(FHandle, X, Y);
end;发布于 2010-03-12 22:09:48
如果你正在寻找比GetPixel/Canvas.Pixel[]性能更好的东西,你应该去Bitmap.ScanLine看看。唯一的问题是,数据可能会以多种方式排列,由Bitmap.PixelFormat决定
https://stackoverflow.com/questions/2431788
复制相似问题