Drop your photo, get a 3:4 JPEG at 420×560 pixels inside the official 40–120 KB window for the China Online Visa Application (COVA). Everything runs in your browser — the photo never leaves your device.
The photo sheet published by Chinese embassies and consulates (issued December 2016, effective 1 January 2017, and still the sheet the consulates' current COVA walkthroughs link) states the digital spec in one line: the photo must be between 354 × 472 pixels and 420 × 560 pixels (width × height), in RGB 24-bit colour, compressed as JPEG with a file size of 40 KB – 120 KB. Both ends of the pixel range are exactly 3:4, so there's one shape and a small size band. This page presets the top end — 420×560, the most resolution the spec allows — with a 40–117 KB window: 117 KB keeps the file under the 120 KB cap in both byte-counting conventions, and if a very smooth photo encodes under the 40 KB floor (it's a real floor — the window is enforced at both ends), PixFit pads the JPEG to it with a spec-valid comment segment and says so.
Chinese visa applications start at the China Online Visa Application (COVA) on the Ministry of Foreign Affairs consular portal, and the photo upload is the first section of the form. The consulates' own walkthrough is honest about how strict it is: the upload step has built-in drag-and-crop editing and an automated compliance check, and — their words — if you fail the check after multiple uploads you may continue filling out the rest of the form and bring a standard ID photo when you submit your passport. So a rejected upload doesn't sink the application; but a photo that already matches the numbers above skips the whole loop.
The sheet gives head geometry for the 354×472 example: face width 205 ± 14 pixels, head horizontally centred, 10–70 pixels of space from the top edge to the crown of the head, the eye-line more than 256 pixels above the bottom edge, and more than 60 pixels between the eyes. In practice: a normal head-and-shoulders passport crop, face filling a bit over half the frame width. Start from a passport-style photo — PixFit centre-crops to 3:4 and can't find your face in a half-body shot. One genuinely useful official sentence worth quoting: when the hair is too high, “the voluminous hair can be trimmed off to ensure the size of the face” — the face measurements win over the hairstyle.
From the same sheet: frontal view, entire head and face visible, neutral expression, eyes open, mouth closed, ears visible; no hands, toys or other people in frame; head tilt at most 20° left/right and 25° up/down. Eyeglasses are allowed only if the lenses aren't tinted and there's no glare, shadow or frame across the eyes. Hats and head coverings are allowed only for religious reasons and must not obscure facial features. The background must be white or close to white with no borders, no shadow across face or background, natural skin tone, and the photo taken within the last 6 months. PixFit fixes pixels and bytes; composition is on you and the camera.
The same sheet also defines a paper photo: 33 × 48 mm, head 15–22 mm wide and 28–33 mm tall, to be glued to printed forms at the visa centre or consulate. Plenty of guides sell 33×48 mm (or its 600-DPI pixel projection) as the upload spec — it isn't; the upload spec is the 354–420 px range above. PixFit can't print photos, but if your visa centre asks for a print, any photo lab can produce 33×48 mm from the same source picture. And as always, if the upload screen in front of you shows different numbers, the portal wins — the current sheet is on the consulates' own sites, e.g. the Photo Requirements page of the Consulate-General in New York.
A visa photo shouldn't detour through some resizer's server on its way to a government form. PixFit re-encodes entirely in your browser — nothing is uploaded anywhere — and the re-encode strips EXIF metadata (including GPS) as a side effect. iPhone HEIC photos can be dropped straight in and come out as COVA-ready JPEGs. Applying elsewhere too? See the US visa (DS-160), India e-Visa and Vietnam e-Visa pages, or the full verified table.