1.开始
在网站上传图片过程,经常用到缩略图功能。这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图。
2.如何生成缩略图
生成缩略图,关键的是如何计算缩放比率。
这里,我根据图片等比缩放,宽高的几种常见变化,得出一个算缩放比率算法是,使用新图(即缩略图)的宽高,分别除以原图的宽高,看哪个值大,就取它作为缩放比率:
缩放比率 = Max( { 新图高度 / 原图高度 , 新图宽度 / 原图宽度 } )
也就是:
If ( (新图高度 / 原图高度) > (新图宽度 / 原图宽度 ) ) {
缩放比率 = 新图高度 / 原图高度;
}ELSE {
缩放比率 = 新图宽度 / 原图宽度;
}
这里列出场景的图片缩放场景,及处理方法:
e.g
场景1,原图比新图大的情况, 缩放比率 = 新图宽度 / 原图宽度 :
场景2,原图比新图大的情况,b. 缩放比率 = 新图高度 / 原图高度 :
场景3,原图比新图大的情况,而且新图宽高相等,即新图形状是正方形,那么上面的缩放算法也是适用的。
场景4,如果 “新图宽度 >= 原图宽度” ,同时 “新图高度 >= 原图高度”,那么不缩放图片,也不放大图片,保持原图。
场景5,如果 “新图宽度 < 原图宽度”,同时 “新图高度 >= 原图高度” ,那么先设置 “新图高度= 原图高度”,再剪切。
场景6,如果 “新图高度 < 原图高度”,同时 “新图宽度 >= 原图宽度” ,那么先设置 “新图宽度= 原图宽度”,再剪切。
3.如何添加水印图片
新闻热点
疑难解答