使用Delphi中的Scanline获取当前像素值

时间:2010-03-11 13:42:10

标签: delphi

我试图通过“OnMouseMove事件”使用Scanline来获取图像中的当前像素。

等同于此的东西:

Label1.Caption := IntToStr(Image1.Picture.Bitmap.Canvas.Pixels[X,Y]);

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

ScanLine返回一个指向打包的像素数组的指针,这些像素构成位图的一行。使用此指针可以快速访问这些像素。

如果只需要一个像素,

ScanLine无法提供帮助。

你仍然可以在这里使用ScanLine;假设位图像素格式为pf32bit:

Label1.Caption:= IntToStr(PIntegerArray(Image1.Picture.Bitmap.ScanLine[Y])^[X]);

答案 1 :(得分:2)

扫描线对于快速扫描整条线非常有用,就像您在其他帖子中一样。但是如果你想获得一个任意的单个像素,那么最好的方法就是使用你已经拥有的代码。