I think you use a 2 color mask for your collision layer.
Then convert it to a pixmap, read each pixel and save true or false to an array.
Now you only need to check for the highest position in that array, what is a lot faster than reading a pixmap or doing a collide image.
Then convert it to a pixmap, read each pixel and save true or false to an array.
Now you only need to check for the highest position in that array, what is a lot faster than reading a pixmap or doing a collide image.