我试图通过“OnMouseMove事件”使用Scanline来获取图像中的当前像素。
等同于此的东西:
Label1.Caption := IntToStr(Image1.Picture.Bitmap.Canvas.Pixels[X,Y]);
有什么想法吗?
答案 0 :(得分:5)
ScanLine返回一个指向打包的像素数组的指针,这些像素构成位图的一行。使用此指针可以快速访问这些像素。
如果只需要一个像素,ScanLine无法提供帮助。
你仍然可以在这里使用ScanLine;假设位图像素格式为pf32bit:
Label1.Caption:= IntToStr(PIntegerArray(Image1.Picture.Bitmap.ScanLine[Y])^[X]);
答案 1 :(得分:2)
扫描线对于快速扫描整条线非常有用,就像您在其他帖子中一样。但是如果你想获得一个任意的单个像素,那么最好的方法就是使用你已经拥有的代码。