下面是上传图片后的生成缩略图的代码,我有点看不懂,求大侠帮我分析下
不懂 float tagsize=500; 这500 啥意思?
if(old_w>old_h){ //改成>运算符的话,图片会把长边缩小成tagsize大小.. <运算符则把短边缩成tagsize大小..
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
这判断啥意思?
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
这些又是啥意思?
最后面这个算法到底生成长跟宽多少的缩略图?
如果我想要生成300X200的缩略图应该怎么改?
求哪位帮我解说解说一下分析代码缩略图
解决方案 »
- 上传 jsf fileupload
- 求救..action拿到的reqeust.不传到DataSource层..如何在DataSource能取得session里的东西???
- 怎么采用 @Resource来注入sessionFactory呢?
- 如何配置 myeclipse的jsp默认编码?
- 如何在web中实现打印
- 关于spring一个helloworld的一个问题!
- MYECLIPSE+JBOSS
- java连接池问题
- 那位高手能帮我解释一下这段代码!急!谢谢了!
- WebSpere与TomCat的比较!!
- Java中开发一个基于Socket的TCP通信的短信接口一般要多久呢?
- 一个JSP页面中写了一段<script>,如何在另外一个jsp页面中的<script>中调用前一个页面<script>中的变量
这是说将要缩放的图片的最长边为500,因为你原来的图片大小不定的,都要缩略成统一的大小,但又是同比例的,所以就只能限制缩小后的图片最长边为500
于是下面就是决定最长边为长还是宽
if(old_w>old_h){ //改成>运算符的话,图片会把长边缩小成tagsize大小.. <运算符则把短边缩成tagsize大小..
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
下面是计算缩放后的图片尺寸
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
ew_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);
那这段代码的为啥要old_w/tempdouble?用意何在?还有Math.round(old_w/tempdouble)用意何在?
tempdouble是确定了原来的图和新图的缩放比例。
然后用原来的图的尺寸跟这个比例就计算出新图的尺寸了
56*23这是一个图的尺寸
要把这个图缩放成5*5
那么我就要知道缩放比例
所以就把56/5得到11.2 四舍五入后为11
tempdouble就是11
然后再把56/11,23/11 所以就5*2的这样一个图
你要问为什么不是5*5呢,因为原来这个图就不是方的,是长的。所以只能同比例缩放成5*2