网站上能动态调用不同尺寸的图片吗
比如发表了一篇文章,上传标题图片,生成了一张原图580*700的和一个宿略图100*100的
如果我要在首页调用这个图片,尺寸是200*240的,怎么办, 是对580*700的原图限定width为200吗?(加载原图影响性能吧)
还是上传图片时,把需要的尺寸图全部上传上去(这样也不太好吧,比如我在首页或其它页面使用的尺寸都不同,岂不是要上传很多的不同尺寸的图片)
有没有什么好的解决方案
回复讨论(解决方案)
我们网站的做法是传一张图 就生成七张大小不同的图存储起来. 这七张是根据需求设定好的
然后在对应位置调用对应尺寸的图片
如果用img标签的width height强行缩放 网页会卡.
一般都缩小到各种尺寸,别以为这是省略存储空间
比较一下100k到10k缩小前后的流量,设定有10个页面用到这张图,每天1万人访问,都看满了这10页,并假设客户端缓存足够一天的浏览量(当天刷新页面不重新传送图片)
100k*10*10000*30=300G/月
缩小后自然就除以10,30G/月
这只是一张图片只用于10个页面,还没计算页面刷新、更多图片、更多页面调用(别小看“转载”啊)的情况
所以越大的站,越要减少图片字节数,当然是按需要,不能一味只求省流量,也要顾及服务质量
至于图片站展示原图那是另一回事,那是从服务质量角度考虑的,而且原图极少在多个页面重复展示
楼上说的没错 存储空间可比流量/带宽 便宜太多了....
嗯,纠正一下上面的错误,如果同一张图(url相同),客户端使用缓存并已存在此图的话,无论多少个页面,都不会重复传,但不同的浏览器,还是少不了的
页面上可能在不同位置,需要不同尺寸的图片
比如发表了一篇文章,上传标题图片,生成了一张原图580*700的和一个宿略图100*100的
如果我要在首页调用这个图片,尺寸是200*240的,怎么办, 是对580*700的原图限定width为200吗?(加载原图影响性能吧)
还是上传图片时,把需要的尺寸图全部上传上去(这样也不太好吧,比如我在首页或其它页面使用的尺寸都不同,岂不是要上传很多的不同尺寸的图片)
有没有什么好的解决方案
数据库结构怎么设计?有七个不同的尺寸标题图,建七个字段存放吗?
页面上可能在不同位置,需要不同尺寸的图片
比如发表了一篇文章,上传标题图片,生成了一张原图580*700的和一个宿略图100*100的
如果我要在首页调用这个图片,尺寸是200*240的,怎么办, 是对580*700的原图限定width为200吗?(加载原图影响性能吧)
还是上传图片时,把需要的尺寸图全部上传上去(这样也不太好吧,比如我在首页或其它页面使用的尺寸都不同,岂不是要上传很多的不同尺寸的图片)
有没有什么好的解决方案
数据库结构怎么设计?有七个不同的尺寸标题图,建七个字段存放吗?
我举个例子
比如图片123.jpg
数据库存123.jpg
七张大小不同的图片是 a_123.jpg b_123.jpg ...
数据库里只存一条..... 程序调用的时候加上尺寸对应的前缀即可.
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
不错的思路,学习下
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
请问和直接读文件比 响应速度如何?
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
请问和直接读文件比 响应速度如何? 比直接?取?存的多?尺寸的?片速度要慢,原因如下:直接?取已存?的?片只需要消耗????,而我的做法?需要cpu首先?整?片的尺寸再?出到客?端,所以多了一?步?.至於慢多少就要看服?器的cpu速度了.
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
请问和直接读文件比 响应速度如何? 比直接?取?存的多?尺寸的?片速度要慢,原因如下:直接?取已存?的?片只需要消耗????,而我的做法?需要cpu首先?整?片的尺寸再?出到客?端,所以多了一?步?.至於慢多少就要看服?器的cpu速度了.
明白了 不过这个思路不错 之前我没有想到
应该会有地方可以用到,不常用的图片之类的
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
请问和直接读文件比 响应速度如何? 比直接?取?存的多?尺寸的?片速度要慢,原因如下:直接?取已存?的?片只需要消耗????,而我的做法?需要cpu首先?整?片的尺寸再?出到客?端,所以多了一?步?.至於慢多少就要看服?器的cpu速度了.
明白了 不过这个思路不错 之前我没有想到
应该会有地方可以用到,不常用的图片之类的 ??做法的好?是只需要在服?器上存?一?原?即可,不需要考?多???,缺?是?有?外的cpu??
我的做法是用php???生各?尺寸的?片,例如
我??a.jpg就是原?,每次用?在?求的?候??不同的尺寸到服?器,服?器???用img.php???整原??客?要求的尺寸,?整完?之後直接?出到客?端,?????出的?片?未被直接存?到服?器上,??做法的好?是不用存?多??片,也不?心流量??,但是他??用服?器的cpu?理能力.
请问和直接读文件比 响应速度如何? 比直接?取?存的多?尺寸的?片速度要慢,原因如下:直接?取已存?的?片只需要消耗????,而我的做法?需要cpu首先?整?片的尺寸再?出到客?端,所以多了一?步?.至於慢多少就要看服?器的cpu速度了.
明白了 不过这个思路不错 之前我没有想到
应该会有地方可以用到,不常用的图片之类的
我也想过这种做法,比如在循环输出文章列表时,每输出一篇文章都要调用img.php输出缩略图
如果网站访问量大,这样网站可能变得很慢
页面上可能在不同位置,需要不同尺寸的图片
比如发表了一篇文章,上传标题图片,生成了一张原图580*700的和一个宿略图100*100的
如果我要在首页调用这个图片,尺寸是200*240的,怎么办, 是对580*700的原图限定width为200吗?(加载原图影响性能吧)
还是上传图片时,把需要的尺寸图全部上传上去(这样也不太好吧,比如我在首页或其它页面使用的尺寸都不同,岂不是要上传很多的不同尺寸的图片)
有没有什么好的解决方案
数据库结构怎么设计?有七个不同的尺寸标题图,建七个字段存放吗?
这样做时间长了,会产生很多的冗余图片吧,有些图片网站上始终用不到,但会一直存在服务器上占用空间
访问量大还是老老实实做静态文件吧
像#1的做法,每当有上传图片就执行转换,保存几种固定尺寸的图片?? 一劳
然后在不同页面调用适合的尺寸,虽然不一定就完全和页面要求一致,但用html轻微改变width/heigh影响不大?? 永逸
更大的站还要cdn缓存呢
动态生成图片对服务器压力太大,还是直接生成多种不同格式的好,毕竟硬盘不值钱。
如果怕图片过多,存储的时候按分辨率存在不同文件夹,以后整理的时候也好删除
推荐阅读