crop an ImageData or arbitrary channel SimpleImageData with the provided crop_rect
the original img_data is not mutated, and the returned cropped image data contains data that has been copied over.