Basically the yellow you see is a layer with Chrome in it, on top of a zinc layer. Funny enough, that 'chrome'-layer doesn't make it bumper-like chrome, but it is chemically called 'Chromate', so a different kind of animal. It's a Chromate layer that changes (converts) the zinc layer, hence it's also called a conversion layer.
The color difference you have on your parts compared to the bolt in your picture is due to an effect called "iridescence" and comes from a difference in thickness of the top Chromate layer, the colors coming from light bouncing differently into, reflecting and back to the Eye. (just like oil on water; there the light-ray-bouncing-thing works identical) The thickness variations of the conversion layer can be 2 things :
1. A material difference: two different materials are used to as a conversion layer; Hexavalent Chromate (Cr6+) and Trivalent Chromate (Cr3+). Cr6+ always has a bit of 'rainbow' to it; Cr3+ has a more uniform color.
2. When using cr6+, longer soaking time gives the rainbow effects, but so does poor conductivity (often when hanging products on a rack), or when the sulfate concentration in the fluid is to low. Ref (
https://www.pfonline.com/articles/quality-finishing-troubleshooting-hexavalent-chromium-plating)
We have a company local that does Zinc work; I've used them a lot privately + for my company. They have a full industrial Electro plating line where parts are hung on racks (for individual & odd shaped parts). Companies that have many identical pieces supply them in custom racks holding 1 to 10.000 of parts. The parts are then dipped in no less then 8 separate baths. I've used that setup to get inner sills, outer sills, A/B pillar parts and pieces of external body work treated. In that case it needs a hole to hang the parts, thus it's manual labor to hang them all.
They can do the sandblasting as well, but in the company i use they only do it quite rough; if you zinc coat a rough surface, you get something back that's rough; like its painted thinly over P180 sandpaper. So I deliver everything clean by myself: I wire brush large panels, and glass bead blast the smaller parts. Whenever possible, I hand sand with P320 to get a smoother surface. If you can still see rust specs with the naked eye, then I consider it not clean enough; more griding disc/sanding blasting is then in order. One of the baths is always an acid, so it eats any residual (porous) rust.
It's about 75 euro per square meter of metal.
For nuts and bolt I just supply them by the bucket; they have specific machines from them where they replace the fluids instead of the parts; they are like tumble dryers slowly rotating in a bathtub. I pay 75 Euro per bucket. The cleaner, the better results.
The Hexavalent Zinc-Chromate (Cr6+) treatment is the most durable but limited available (in EU at elast - not sure about US) as nowadays it's being replaced by tri-valent zinc chromate (Cr3+) for industry; In the EU, industries are not allowed anymore to use Cr6+ if it comes in skin contact with workers (e.g the nuts and bolts in car plants). Both Cr3+ and Cr6+ are better corrosion resistant then the clear (blue-isch silvery metal) zinc.
These Cr6+ and Cr3+ coatings are inferior to the Cadmium plating that is on our original fastners; The CAD plating is very, very similar to Zinc Chromate coatings. Mind you: if you clean the original nuts and bolts with abrasive blasting to get them clean, the Cadmium turns to dust and becomes a carcinogenic dust in your garage. DO USE AIR EXTRACTION and vent to the outside (which there was a better way to catch the Cadmium, but i do not know of any method - let me know if you do)
zincplating.company
below: this is how clean i get parts BEFORE zinc treating screws / the rails.
and after;
Left Chrome Cr3+ coating; right a Chrome 6+ coating (darker)
When it comes to surface prep: sometimes I am also suprised: I just sandblasted the right one, and then zinced it will wires, plastic and copper parts in place and it came out like the left one. No problem!