日期:2014-05-17  浏览次数:20527 次

根据url请求,生成指定大小的图片
问题是这样的:比方说图片服务器上有一张图片,访问url为image.baidu.com/333.jpg
当请求改为image.baidu.com/333_500x300.jpg,时我需要在图片服务器上根据333.jpg生成一张500x300的图片。
这是领导要求的,求解决方法。我现在想的是先拦截网站url请求,判断此请求如果是图片请求的话,就找是否存在该图片,不存在的话生成,保存文件名为333_500x300.jpg。我的思路对吗,还有就是怎么拦截请求。

最后想问下这个功能好吗,你们遇到这种可能一张图片多个地方使用,并且尺寸不一样时是如何解决的呢。我感觉领导的这个要求想法是好的,但是好像对服务器性能及访问速度影响较大,还有就是容易产生许多垃圾图片。
请大家说说解决方法及对这个功能的看法吧
------最佳解决方案--------------------
1、请求图片都指向一个aspx页面,该aspx负责将需要获取的图片进行处理,返回需要大小的图片,图片大小转换由后台处理,图片并不真的保存,不会产生垃圾图片,但这样做是用性能换空间
2、就像你说的那样,所有大小的图片服务器都有保存,如果没有就后台生成,这样是空间换速度
3、你可以改个思路,图片还是原来的图片,只是显示出来是用js将图片显示成指定大小,这样做好处是不管哪里用,都是同一张图片,即只需下载一次,只要在客户端缓存内包含,就不会再从服务器下载该图片,坏处是如果图片太大,这样会导致交互效果比较差
<img>和css本身就支持指定显示大小哇。。。。
------其他解决方案--------------------
补充上面的,改变图片显示比例可能会造成失真,这个需要处理一下,就是将图片按比例进行缩放,这个前台后台处理方法都是一致的,就是比较需要的比例和图片原始比例,取高、宽两者的最大比例差,另一个用这个比例计算出相应的值
------其他解决方案--------------------
引用:
1、请求图片都指向一个aspx页面,该aspx负责将需要获取的图片进行处理,返回需要大小的图片,图片大小转换由后台处理,图片并不真的保存,不会产生垃圾图片,但这样做是用性能换空间
2、就像你说的那样,所有大小的图片服务器都有保存,如果没有就后台生成,这样是空间换速度
3、你可以改个思路,图片还是原来的图片,只是显示出来是用js将图片显示成指定大小,这样做好处是不管哪里用,都是同一张图片,即只需……

你说的<img>跟css指定显示大小就是定义属性的宽高吗,这样图片就失真了。你说的其他思路都挺好的,我最起码知道怎么下手做了,呵呵 。谢谢啊
------其他解决方案--------------------
引用:
引用:1、请求图片都指向一个aspx页面,该aspx负责将需要获取的图片进行处理,返回需要大小的图片,图片大小转换由后台处理,图片并不真的保存,不会产生垃圾图片,但这样做是用性能换空间
2、就像你说的那样,所有大小的图片服务器都有保存,如果没有就后台生成,这样是空间换速度
3、你可以改个思路,图片还是原来的图片,只是显示出来是用js将图片……


所以我2楼给你补了个不失真的方法啊
------其他解决方案--------------------
嗯,知道。谢谢