SlimPic
Pick a target in kilobytes. The JPEG gets smaller here in your browser, and the original is not uploaded.
The photo is saved as JPEG. A higher quality is tried first. If that is still over the target, quality comes down. Only then are the pixels reduced, and the long side stays at least 320 pixels so the picture remains recognizable. A target under about 30 KB on a large photo will miss. Location data is not copied into the new JPEG. A transparent PNG is flattened onto white.