图片缩放自适应

按图片比例预览图片

 我们先看一个例子,来自Win7系统的Windows照片查看器:  

  

 从以上3张图片可以知道,图片一直在窗体中保持宽高比不变的前提下,最大缩放。首先我们自己想一下如果是自己手动做到这个效果,思维是怎样判断的。每个人的思维都不一样,你要做的是用编程语言把你自己的思维方式表现出来。以下是我两种思维方式:

一.

1.看到一张需要缩放的图片时,大脑中大概得到宽高比,Proportion

2.得到一个窗口,我以窗口的高作为我最后缩放的高,根据图片的比例虚构一下宽,跟窗口的宽的差别。

如果我脑海中虚构出来的宽比窗口的宽长的话,就如果以窗口的高作为图片缩放的高的话,图片按照比例窗口不能显示。就那以窗口的宽作为最后缩放的宽,脑海中再虚构一遍。(图2)。

如果我脑海中虚构出来的宽比窗口的宽短的话,就证明窗口能显示按比例缩放之后的图片(图1)。

二.

1.将窗口的宽与图片的宽的比例,窗口的高与图片的高的比例,比较一下。也就是想一下图片的形状是矩形(宽>高),跟窗口的形状有多大的差别。例如图1跟图2,很明显知道图1是宽度相差太大了,图2的高相差太大。

2.将比例变化少的那个作为缩放后的长度。图1以高最为最后缩放图的高,图2以宽作为最后缩放图的宽。

 

(可能我的表达能力不是很好,大家可能还不明白,我把代码贴出来,大家应该就会明白了。)

 

Code

 

代码我没测试,自行测试,虽然在WinForm的编程中只需设计PictureBox的缩放模式为Zoom就可以轻松得到。但是在网页中用来制作缩略图还是有一点用处的。

 

 

 其实这个是我毕业设计那个播放器的视频缩放自适应的功能,我只是换了一个方式写出来,所以上面的代码才没测试。因为在播放器哪里已经测试过,只是上面用面向对象写了出来,不知道有没有什么问题,刚刚才学面向对象,第一次发代码,大家见谅。昨晚都没怎么看到书,师弟来了宿舍,聊天到2点多。

 呜呜,今天真的好黑,去饭堂买饭,居然还差两个人就到我啦,阿姨居然说,不好意思啊,方盒卖完啦。我哭,只好去买个粉吃,买了回到宿舍一吃,冷的!痛苦。这个月的流量用完了,只能低速上网,博客退到下午才更新。。

posted @ 2009-10-30 18:00  尐傑.net  阅读(1168)  评论(0编辑  收藏  举报