现在缩略图基本上有几种方式:
1.填充的方式
2.按高缩略
3.按宽缩略
4.切除方式
我简单地举例描述下这几种方式及它们的缺点(因为优点没啥好讲的):
1.就是把图片A按一定的宽跟高缩略,例如图片A的宽跟高是400*500,把它缩略成200*250,这样图片就是缩小了1/2,但有一个问题,假设我要把一个400*500的图片缩略成200*200的图,这样缩略下去.这个图就变形了.
2.按高跟宽缩略是指按指定的缩略高或宽缩略,例如图片A的宽跟高是400*500,我按宽缩略为200,那宽就是500*200/400=250了,如果我按高缩略为200,那高就是400*200/500=160,这样处理是没啥大问题,就是在页面上表示的时候,会出现个排列比较难处理.有处理过的朋友们应该会记得那个苦恼.
3.就是我按我要的宽跟高,例如是300*300把一张图片例如400*500把这个切300*300出来.剩下的都放弃.这样缩略会让用户上传的图,其中一部分看不到.
我想出一个方法,算是个折衷的方法吧,就是网页上通常都是需求固定大小的缩略图,如果我在一个资讯板块中,把无论宽跟高的所有图片都要缩略出一张200*200来当资讯图片,用第1种缩略方法有可能会把图片变形,用第二种方法没办法缩略成200*200的图片,用第三种会把图片的元素丢失.所以我觉得比较好的处理方法是这样:先画一张200*200白底的图片,再判断图片的宽跟高哪边大,假设高>宽,那就按高缩略,再把这缩略的图片以居中的方式放到那个200*200的白底图片上,完成缩略.
这个方法是缩略了同样的高跟宽..如果有需求缩略成不同的宽跟高的话,只要稍微修改一下就可以用了.