How to set background color of an image?

That sounds like a good solution, using rect or block to draw the background.
You can place things overlappingly or offset using the place function. The easiest way to draw on the whole page is using page.background, which gives you access to the page without margins already (so you don’t need to compensate for them in place’s dx and dy).

#set page(background: place(top + left, rect(image(..))))

If you need to, you could also use a conditional like if here().page() == 1 or something similar to only draw this page background on a particular page.

1 Like