
A client says the photos look soft. You know they were sharp when they left. Somewhere between your card and their screen something changed, and the transfer is the obvious suspect because it is the part you understand least. It is almost never the transfer. Here is what it actually is, and how to check rather than guess.
A file transfer service is a courier, not a darkroom. It reads the bytes you hand it, stores them, and hands the same bytes to whoever opens the link. It has no reason to decode a JPEG, and decoding one costs it money in CPU it would rather not spend.
WeTransfer, Dropbox, Google Drive and Kepla Free File Transfer all behave this way for the file you upload. A checksum of the file you sent and the file that arrives will match. If it did not, every architect and lawyer using these services would have noticed long before photographers did.
The one thing that varies is the container. Some services zip a multi file transfer, some do not. Zipping is lossless: it repacks bytes, it does not re-encode pixels. A JPEG that comes out of a ZIP is byte for byte the JPEG that went in.
In rough order of how often it is the answer:
Do not argue about it. Compare the files. On a Mac, open Terminal and run this against your original and the copy the client downloaded:
shasum -a 256 original.jpg downloaded.jpgTwo identical hashes means the file did not change in transit, full stop. Two different hashes means something re-encoded it, and now you know to look at what the file went through after it arrived.
A faster sanity check without a terminal: compare file sizes in Finder. A 14.2 MB export that arrives as 14.2 MB is the same file. A 14.2 MB export that comes back as 380 KB went through something.
You cannot stop a client putting your work through Instagram. You can remove every other variable:
Do that and the next time someone says the photos look soft, you will know within a minute where to look.
No. It transfers the file as uploaded and does not re-encode images. A checksum of the original and the downloaded copy will match.
No. ZIP is lossless compression: it repacks bytes and does not touch the image encoding. A JPEG extracted from a ZIP is identical to the one that went in.
Usually because of what happens after the download: WhatsApp, iMessage and Instagram re-encode heavily, Google Photos re-encodes on upload unless original quality is on, and mail apps often show a generated preview rather than the file.
Run shasum -a 256 on your original and on the downloaded copy. Identical hashes prove the bytes are unchanged. Comparing file sizes in Finder is a quick approximation.
No. Files are packed into one ZIP as they upload and stored exactly as sent. Nothing is resized or re-encoded, and the recipient gets the same bytes you exported.
Kepla for Mac clears the obvious misses from a card, names the reason on every frame it sets aside, and leaves the choosing to you. Nothing is ever deleted, moved or renamed. Free through the private preview · the first hundred photographers keep it at $99 a year.