缩略图相关
2016-03-24 09:23
190 查看
图片服务器上缩略图的那些事儿
最近一周又对图片服务器进行了一次升级,当然不是硬件上的。
作为一个图片类网站,我相信你会不可避免的遇到以下问题。
1 怎么搭建独立的图片服务器?
2 图片服务器的目录结构怎么设计?
3 web服务器怎么跟图片服务器打交道?
4 每张图片有很多尺寸的缩略图,上传之后要全部生成吗?
5 怎么提高程序中生成缩略图的效率,做到不影响用户体验?
6 该死的产品经理又增加了许多新的需求,多出了几种缩略图尺寸,我该怎么办?
不管你想不相信,这些问题我都遇到了,而且对于没有任何经验的我,我才用了最容易想到,也是最笨的方法。看看我最开始的解决方法:
1 买个服务器装个系统,要个大点的硬盘就完了呗。
2 全部放到一个文件夹中。
3 我会告诉你我用的是FTP的方式上传吗(我居然都没想到用NFS)
4 全部生成,妥妥的
5 没啥好办法,java里面写程序处理
6 写了个java程序,动态处理这种自定义尺寸的缩略图
你会发现,我的这些解决方法都好傻啊。对,我也发现了。但是在当时来说,是我能想到的最有效的办法。
随着图片文件的增多,访问量的增大,怎么提升性能成了考虑的重点。把我现在的解决方案记录一下。
1 这个没什么好说的。
2 根据图片文件名称来存入指定的文件夹。例如图片名称为d5e0b1f51baeec36.jpg,放到/d5/e0/文件夹下,当然,也可以用上传时间等方式命名文件夹。通过Nginx rewrite到指定的文件夹。
3 web服务器POST图片到图片服务器。图片服务器按照指定的规则保存。
4 图片服务器只保存原图,如果访问的缩略图不存在,则生成后保存,生成的方式见下述。
5 Nginx+lua+graphicsmagick搞定,具体的可以参见我前一篇文章。
6 解决方法跟4,5条一样的。
============================================================
.NET 响应式自动缩略图服务器
做互联网网站,总是会涉及到缩略图问题,之前一直是在上传图片时生成不同尺寸的缩略图,一直感觉又费力又不好管理,之后就写子
ThumbnailServer 用于部署一个图片服务器,在使用图片时才将图片转为对应的缩略图,类似淘宝图片空间
比如,物理上存在图片
/x.jpg 那么访问
/x.jpg_60X60.jpg
/x.jpg_600X600.jpg
就可以得到它的不同尺寸的缩略图
ThumbnailServer
可以支持:
路径-尺寸白名单
图片类型白名单
图片路径白名单
如下代码:
在Application Start中配置即可
GitHub: https://github.com/chsword/ThumbnailServer
另外再推荐一个不错的响应式缩略图服务,功能很强大,按比例缩放、裁剪图片都可以通过Querystring来完成,优点是插件很多,功能强大
地址:http://imageresizing.net
/a.jpg
/a.jpg?w=120
/a.jpg?w=100&h=200
最近一周又对图片服务器进行了一次升级,当然不是硬件上的。
作为一个图片类网站,我相信你会不可避免的遇到以下问题。
1 怎么搭建独立的图片服务器?
2 图片服务器的目录结构怎么设计?
3 web服务器怎么跟图片服务器打交道?
4 每张图片有很多尺寸的缩略图,上传之后要全部生成吗?
5 怎么提高程序中生成缩略图的效率,做到不影响用户体验?
6 该死的产品经理又增加了许多新的需求,多出了几种缩略图尺寸,我该怎么办?
不管你想不相信,这些问题我都遇到了,而且对于没有任何经验的我,我才用了最容易想到,也是最笨的方法。看看我最开始的解决方法:
1 买个服务器装个系统,要个大点的硬盘就完了呗。
2 全部放到一个文件夹中。
3 我会告诉你我用的是FTP的方式上传吗(我居然都没想到用NFS)
4 全部生成,妥妥的
5 没啥好办法,java里面写程序处理
6 写了个java程序,动态处理这种自定义尺寸的缩略图
你会发现,我的这些解决方法都好傻啊。对,我也发现了。但是在当时来说,是我能想到的最有效的办法。
随着图片文件的增多,访问量的增大,怎么提升性能成了考虑的重点。把我现在的解决方案记录一下。
1 这个没什么好说的。
2 根据图片文件名称来存入指定的文件夹。例如图片名称为d5e0b1f51baeec36.jpg,放到/d5/e0/文件夹下,当然,也可以用上传时间等方式命名文件夹。通过Nginx rewrite到指定的文件夹。
3 web服务器POST图片到图片服务器。图片服务器按照指定的规则保存。
4 图片服务器只保存原图,如果访问的缩略图不存在,则生成后保存,生成的方式见下述。
5 Nginx+lua+graphicsmagick搞定,具体的可以参见我前一篇文章。
6 解决方法跟4,5条一样的。
============================================================
.NET 响应式自动缩略图服务器
做互联网网站,总是会涉及到缩略图问题,之前一直是在上传图片时生成不同尺寸的缩略图,一直感觉又费力又不好管理,之后就写子
ThumbnailServer 用于部署一个图片服务器,在使用图片时才将图片转为对应的缩略图,类似淘宝图片空间
比如,物理上存在图片
/x.jpg 那么访问
/x.jpg_60X60.jpg
/x.jpg_600X600.jpg
就可以得到它的不同尺寸的缩略图
ThumbnailServer
可以支持:
路径-尺寸白名单
图片类型白名单
图片路径白名单
如下代码:
ThumbnailConfig.Start().Include("/Images", setting => setting.AllSize().Store() );
在Application Start中配置即可
GitHub: https://github.com/chsword/ThumbnailServer
另外再推荐一个不错的响应式缩略图服务,功能很强大,按比例缩放、裁剪图片都可以通过Querystring来完成,优点是插件很多,功能强大
地址:http://imageresizing.net
/a.jpg
/a.jpg?w=120
/a.jpg?w=100&h=200
相关文章推荐
- tomcat 配置文件下载目录
- requirejs 小结
- RP2833 指示灯说明
- 三色球问题
- Java 回顾笔记_集合框架_基本体系功能和迭代器
- 实例讲解设计模式中的命令模式在iOS App开发中的运用
- Apache Commons 工具类介绍及简单使用
- AIX errpt命令说明
- PAT1033旧键盘打字(20)
- iOS项目的Info.plist的一些设置mark
- 作业
- 我的C++第二次实验作业
- 命令行参数 main()函数设计
- RP2833 FPGA对应串口标识
- 非法疫苗引发的思考 -外观模式
- 周鸿祎:很多程序员聪明,但我一看就知道他不会成功
- solr自定义core
- 安卓开发中非常炫的效果集合(转载)
- C++实验2—标准体重
- JS函数openwindow()