php的静态文件服务器,怎么优化图片输出?

现在公司有个项目是让用户上传图片,然后查看图片的,有些类似百度云吧。然后有个需求要查看图片时先看缩略图,点击原图才能看原图,我看到微博都有这个功能,我想知道他们这个功能是怎么做到的,是上传的时候直接压缩了几个版本的图片,还是前端加载的时候才临时压缩的?

我比较想要一个静态服务器在输出图片的时候自动压缩图片,就像下面文章里提到的七牛做到的那样,功能没有七牛的强也行,只要简单的按图片比例压缩图片就行,但压缩得要好,我用过一些压缩,压出来的图片锐度特别高,锯齿挺严重。

看了这篇文章Web性能优化:图片优化,觉得还是有帮助的,他提到的Google PageSpeed,可以部署到Apache服务器上,获取图片的时候会自动压缩,似乎挺适合。但是我搜了一下,发现这个只是检测服务器性能的工具而已,不是用来压缩图片的?

阅读 6k
4 个回答

大量图片是上传的时候直接压缩了几个版本(通过队列任务压缩,防止占用过多资源)
压缩的实现方案就很多啦,github一堆

静态文件就不要走PHP了,走nginx
关于图片裁剪,nginx有插件可以做c语音的插件,速度绝对杠杠的,比PHP快得多了

你可以用php动态生成缩略图 只有访问的时候生成一次 之后走静态文件 这个nginx可以配置的
至于图像质量 在php的生态圈主要靠扩展 gd imagick 后者一般说质量相对好些 关于锐度问题应该是调用库的参数不合理 建议静下心来多试试看

是否可以在上传的时候,直接程序压缩一下,存储一张缩略图,展现的时候直接调用缩略图,鼠标点击的时候直接放出大图片的地址,就能解决问题了。不用存储数据库按照一定规则存储到本地,获取的时候组装即可。
很想和你认识下 QQ : 810978593

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏