Now that is funny. I was postponing a response because I already saw someone else was making a response.
What do you mean with “not very good”. The quality of your pictures is a mayor point in a reverse-engineering project. The best option is to use a flatbed scanner because it produces the least distortion over the area of the pictures, the next best thing is to use a (decent) camera and make the pictures from a long physical distance to reduce perspective errors and lens distortions. But cameras also introduce other errors. Shadows, reflections and such are also mayor things to avoid. Making suitable pictures is a (small) art in itself and needs practice. So spend some time on it, and make new pictures if they do not look clear on your PC.
This seems like a waste of time to me. In KiCad, the schematic is the reference. I would start with putting schematic symbols on the schematic, and assigning footprints to them. After that you can draw wires on the schematic, and copper tracks on the PCB. And once you are ready, just export the BOM to whatever format suits you. Also, if you put all the footprints on the PCB over the pictures, you get a quite nice overview of the missing footprints.
You are right in that loading a background picture is a new and not well developed feature. Reverse engineering is also a niche part of PCB design, and it’s not a high priority for the KiCad developers (Among the 1900 open issues on gitlab, there are 552 “feature-requests”)
I have done it a few times (with mostly simple PCB’s such as breadboard breakout boards for a single ic), and I am also still figuring out the workflow that works best. The last time I put the pictures on User.1 and User.2 and I renamed those layers in the board setup to TOP_JPG and BOTTOM_JPG. This gives you independent control over showing the pictures.
Scaling can be done accurately in KiCad. First, you can select the picture, and drag one of the small squares in the corners to get it roughly correct. After that you can press e to edit the properties of the picture, and enter a number for the scale in the Image tab.
Positioning can be done accurately in KiCad, by first measuring the distance you want to move the picture, then right click on the picture and use Positioning Tools / Move Exactly, Move with Reference or one of the other positioning tools. It is a bit annoying that as soon as a picture is selected, it gets pulled to the front and opacity is set to 0 so you can’t see anything else while moving the picture. (So Move Exactly with previously noted coordinates works probably best). Another and simpler way to position the picture is to just edit the properties of the bitmap and modify the X and Y coordinates.
I do not know how big and complex your 4 layer PCB is, but the right preprocessing can save a lot of work. I am not very good with pixel programs, but can do a few simple things in Gimp. I have not done this yet, but I think it would be beneficial (for a more complex project) to first get “somewhat decent” background pictures in KiCad, then draw the outline of your PCB and a bunch of reference point as a star map across it’s surface. Via’s are good to use, because they go through all layers. After that you can export or “Print to File” the PCB and open it as a layer in some graphical program, and you can use it as a reference to do corrections to the pictures to reverse distortions. And then of course put the better pictures in KiCad. If your pictures are very good and free of distortions, retracing them in KiCad becomes easier too. I also like RaptorUK’s idea of cropping all pictures together in a pixel program, so location and scale factor will be the same for all of them in KiCad.