Api函数“GetPixel”比Canvas.Pixels更快吗?GetPixel和Canvas.Pixels在Delphi中的区别
5
A
回答
6
它应该是相同的:
function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
RequiredState([csHandleValid]);
GetPixel := Windows.GetPixel(FHandle, X, Y);
end;
4
如果你正在寻找的东西,执行比GetPixel/Canvas.Pixel []你应该看看Bitmap.ScanLine。唯一麻烦的是数据可能以多种方式排列,由Bitmap.PixelFormat确定。
0
GetPixel函数是非常慢很慢!如果您需要较高(甚至可接受)的性能,则应使用ScanLine属性。 ScanLine [y]是指向位图中第y行像素的指针,以PixelFormat属性指定的格式编码。例如,对于一个24位位图,所述线具有格式
B1 G1 R1 G2 B2 R2,...,BN GN Rn中
如果位图的宽度为Ñ。 Bi,Gi和Ri分别是像素的蓝色,绿色和红色像素的强度,其中像素为i。
相关问题
- 1. Delphi 7和Delphi 2010的区别可执行文件的大小?
- 2. Delphi和Rad Studio有什么区别?
- 3. opendialog和Tntopendialog(Delphi 7)有什么区别
- 4. 在WinXP和Win7下delphi代码执行的区别。为什么?
- 5. GDI中的GetPixel
- 6. Spring for Delphi中GlobalContainer和ServiceLocator之间有什么区别?
- 7. ALPHA_8位图和getPixel
- 8. Delphi链接器和C++链接器的区别
- 9. Delphi和Lazarus(FPC)的接口实现有什么区别?
- 10. 从德尔福C#Image1.Canvas.Pixels
- 11. 区别! !和= JavaScript中
- 12. 在JavaScript Function.prototype的和Object.prototype中的区别
- 13. LIKE和= MYSQL中的区别?
- 14. java中+ =和= +的区别?
- 15. PHP中“:”和“。”的区别?
- 16. C++中“::”“。”和“ - >”的区别
- 17. SQL中'AND'和'&&'的区别
- 18. Perl中“@”和“$”的区别
- 19. javascript中+ =和= +的区别
- 20. vim中$和g_的区别?
- 21. Scala中&和&&的区别?
- 22. JSP中eq和==的区别
- 23. Haskell中==和=的区别
- 24. Cassandra中节点和分区的区别
- 25. delphi中的双缓冲区
- 26. 'OR'和'||'之间的区别在SQL中?
- 27. Image.Save和FileStream.Write()在c#中的区别
- 28. 夹具和yield_fixture在pytest中的区别
- 29. lib和lib-cov在express中的区别?
- 30. 在PHP中::和 - >之间的区别?
请问我的论点有什么问题? – 2010-03-12 14:40:05
@Ritsaert:你确定吗?我刚刚创建了一个填充(R,G,B)=(0xFF,0,0)的小BMP文件并在内存中查看它。请参阅http://privat.rejbrand.se/hex.png。突出显示的字节是第一条扫描线的第一个字节。对我来说,它确实看起来像字节去BBGGRRBBGGRR ... – 2010-03-12 15:23:43
我很惭愧。你是对的。 24位位图的格式为BGR顺序。 – 2010-03-12 15:45:14