Oh, it’s because you are trying to copy that into the MicroPython heap which is only 256KB.
You need to either overwrite the current frame buffer with the down scaled image or alloc a new frame buffer and then target that by passing it as the argument to copy.