
All other proxies misinterpreted colors as sRGB. Only openmobile.ne.jp and Centertel PL support ICC color profiles. Similarly proxies miss out on converting uncompressed ICO files to PNG (tip: you can use PNG for favicon.ico—it works in all browsers including recent IE). These formats provide very weak or no compression, so it would be nice to protect users from such rare, but massive files. You’re better off optimizing images yourself from source files than relying on proxies to (re)compress for you. Opera’s WebP settings blur even more: 20KB recompressed WebP 20KB JPEG saved from source Google Proxy converted this image to a larger 24.7KB WebP that smudged away some details. They can only make bad quality worse, and lossy recompression of lossy format magnifies compression artifacts.įor example, a 26KB JPEG image saved at “30%” quality was losslessly optimized to 24KB by openmobile.ne.jp. However, recompressing proxies are at a disadvantage, because they don’t have access to original high-quality images.
#Construct 3 recompress images full#
can’t store color at full resolution), but it’s strength is in low-quality range thanks to block prediction that can approximate edges and deblocking filter that blurs away some compression artifacts. Google’s lossy WebP format is not so good for high-quality images (e.g. They achieve smallest file sizes, but often also give lowest quality. They convert images to WebP and compress them very aggressively. These two proxies are not run by ISPs, but are integrated with Opera’s and Google’s browsers. It did OK job with opaque PNG files, but messed up transparency and made some PNGs larger. There was only one proxy that recompressed PNG images (it identifies itself as “bwo-c1s11 hpm/3.0”). The good news is that this proxy has a JPEG encoder tuned to perform relatively well on low quality images.Ĭentertel PL and openmobile.ne.jp use different software, but achieve similar results. It also modifies HTML (and ignores MIME types and breaks XML) to inject a script that allows users to reload images in original quality… with a keyboard shortcut. Sprint,, O2 (Telefonica), T-Mobile PL served bit-identical images that appear to be generated by this software. This is amazing! It wins an award in the “Best Supported Obscure Header” category.īyteMobile proxy seems to be ISPs’ favorite. The standard HTTP header Cache-Control: no-transform which tells proxies not to modify responses was respected by all proxies I’ve encountered. Fortunately, apart from nostalgia, there’s no reason to use GIF for images any more. Static GIF images are getting noticeably posterized/discolored/dithered. If you’re not using lossy PNG yet—you really should! “compressive images” trick for high-dpi displays) you need to stop proxies from ruining them.

If you’re already using JPEGs at minimum acceptable quality (e.g. Unfortunately, even very low quality JPEGs are recompressed to have even lower quality. Here’s what I’ve found:Īll proxies recompress all JPEG images.

With few simple tweaks it’s possible to deliver images with even better compression and quality. It turns out that these proxies are not as bad as I expected, but quality of images they produce is rather low and cannot be relied upon. I’ve served 27 different images and got 231 unique files back. I’ve set up a test page that downloads a set of sample images and re-uploads them back to my server for analysis.

I’ve decided to have a closer look at what exactly these proxies do to images and whether it can be improved. This means that visitors of your website or mobile app may be getting images in much lower quality than you’re serving. Most mobile carriers force all HTTP traffic to go through their proxies that—among other things—recompress images on the fly.
