Hi, vflip doesn’t work because it cannot be done using non-triple-buffered mode. lcd.write() for the display driver, when you don’t have enough RAM, just writes out the image line by line. we can only hmirror in this case.
If you want to flip the image, then, you need to do it in ram first:
img.scale(hint=image.VFLIP|image.HMIRROR)
You’ll notice this cost performance and also requires a second buffer in RAM to hold the output image… so, you might get an out of memory error depending on the res.