首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi中GetPixel与Canvas.Pixels的区别

Delphi中GetPixel与Canvas.Pixels的区别
EN

Stack Overflow用户
提问于 2010-03-12 17:53:31
回答 3查看 3.7K关注 0票数 6

Api函数"GetPixel“比Canvas.Pixels快吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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的蓝色、绿色和红色强度,作为字节。

票数 2
EN

Stack Overflow用户

发布于 2010-03-12 17:57:22

它应该是相同的:

代码语言:javascript
复制
function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
  RequiredState([csHandleValid]);
  GetPixel := Windows.GetPixel(FHandle, X, Y);
end;
票数 7
EN

Stack Overflow用户

发布于 2010-03-12 22:09:48

如果你正在寻找比GetPixel/Canvas.Pixel[]性能更好的东西,你应该去Bitmap.ScanLine看看。唯一的问题是,数据可能会以多种方式排列,由Bitmap.PixelFormat决定

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2431788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档