Can't (easily) display undistorted images in their native size in PsychoPy

I’d like to display images in their native resolution, i.e. without any rescaling. It doesn’t seem to work, i.e. the images are distorted.

This is an example of the stimulus I want to display:

What I do:

img = visual.ImageStim(win, image="DADER-n0.png", size=None)

However, when I draw this stimulus, you can see that it is distorted – some thin lines between the white blocks disappear and some are larger. Clearly, it has been somehow processed.

I get the same result when I explicitly set the size of the displayed stimulus (in alignment with the size of the png image):

img = visual.ImageStim(win, image="DADER-n0.png", units='pix', size=[385, 187])

However, if I compute the angular size of the stimulus for my monitor setting (screen size 1920x1080; distance 580mm, width 310mm) and use it:

img = visual.ImageStim(win, image="DADER-n0.png", units='deg', size=[6.135, 2.9799])

the stimulus gets displayed properly.

Even though I can get it working, you will probably agree that it is a bit indirect way of doing it.

Outputs produced by the correct version of the command (the last one) and by the incorrect versions seem to have slightly different sizes, which might explain why some outputs are distorted.

I’m using Win11, interface scale 100%, Python 3.9.12, Psychopy 2022.1.2.