我如何通过HTTP提供压缩图像?

时间:2013-12-05 16:40:07

标签: image compression

我希望用户上传他们的高分辨率图像文件以便安全保存。他们可能希望打印它们或在将来执行其他需要从文件的完整版本开始的其他内容。

对于常规显示,我会提供一个较小的版本,例如1024x800。但他们可以选择检索多百万像素文件。

我可以将其存储在某种zip文件中并节省大量磁盘空间,但有没有办法让我的网络服务器提供该拉链图像?

浏览器:GET MyBigImage.jpg 服务器:加载MyBigImage.jpg.zip并返回MyBigImage.jpg。

我在Apache或Nginx的上下文中考虑这个问题,但会考虑使用任何Web服务器的解决方案。

我对在文件上运行优化并且只存储How does Google's Page Speed lossless image compression work?建议的优化版本并不感兴趣。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果使用gzip压缩图像,则可以直接提供压缩的图像文件,只需将Content-Encoding标题设置为gzip

例如,以下php脚本将执行此操作:

<?php
header('Content-Encoding: gzip');
echo file_get_contents('./gzipped_images/' . $_GET['image']);
?>

或者在nginx上你可以这样做:

location /gzipped_images {
    more_set_headers 'Content-Encoding: gzip';
}

请注意,您需要HttpHeadersMoreModule