java 固定的范围内,按分辨率比例正确显示图片

精贴 置顶
2750 0
作者: 管理员     发布时间: 2015-04-11 20:35:04

       在网页上显示一张不走样的图片, 很多情况中,我们在固定的范围内显示,但常常因为图片太大太小而走样或只显示一部分。
为了解决这个问题,先看看第一种方法:


方法一,用width固定图片:
<img width="200px" id="photo" src="http://www.yangyuehua.com/includes/images/default_0.jpg"  />
固定宽度,这是不走样的最简单的方法,但如果图片高比例较长的话,显示不人性化,图片太小也被拉大。


方法二,用JQuery设置宽度长度:
var srcWidth = $("#photo").attr("width");
var srcHeight = $("#photo").attr("height");
$("#photo").attr("width", 200);
$("#photo").attr("height", srcHeight * 200/srcWidth);

按比例动态改变图片大小,能获得比较好的图片适应大小。
缺点是加载图片慢时会获不到图片长度。

方法三,java直接获取图片大小信息后进行处理:
double m_srcWidth = 0.0;
double m_srcHeight = 0.0;
String m_filepath = "http://www.yangyuehua.com/includes/images/default_0.jpg";

File w_tmp = new File(m_filepath);
if (w_tmp.exists() && !w_tmp.isDirectory()) {
InputStream w_is = new FileInputStream(m_filepath);
BufferedImage w_src = javax.imageio.ImageIO.read(w_is);
m_srcWidth = (double)w_src.getWidth(null);
m_srcHeight = (double)w_src.getHeight(null);
}
if(m_srcWidth==0 || m_srcHeight==0){
m_srcWidth = 250.0;
m_srcHeight = 230.0;
}else{
if(m_srcWidth>250.0){
m_srcHeight = m_srcHeight*(250.0/m_srcWidth);
m_srcWidth = 250.0;
}
if(m_srcHeight>230.0){
m_srcWidth = m_srcWidth*(230.0/m_srcHeight);
m_srcHeight = 230.0;
}
}

用Java直接获得图片大小,并按比例处理,在img中设置,

php、asp等也类似,就能完美地显示图片了。


标签:
上一篇:
下一篇: Spring返回json可以跨域设置

每日一句

如果花了足够多的时间考虑你的目标,你就能用自己的心看到、摸到、尝到和闻到那个目标,你不会轻易放弃。实现目标的欲望会给你足够的毅力克服哪怕是最令人生畏的障碍。在真的取得成功之前,你应该已经在头脑中达成目标。这样你就能承受任何暂时的痛苦,实现自己的梦想。

标签云

vue
最近综合
情绪巨婴是什么 12.18
普通蛋糕做法 05.31
玉米烤肠芝士面包做法 05.31
Mysql安装教程 - 绿色版 06.18
我们学习知识为什么总是忘记呢?【学习金字塔】 05.12
Typora开发版⽆法使⽤解决⽅法 05.04
为什么无知者越自信? -- 达克效应 05.10
马斯洛需求层次理论 04.29
随机综合
中间件1.2.2-ActiveMQ支持的消息协议讲解 04.23
Java学习总结(2.1.1) TCP/UDP协议 04.17
Springboot安装与开始 03.08
Spring返回json可以跨域设置 08.21
Microsoft Edge和Google Chrome的STATUS_INVALID_IMAGE_HASH 07.06
我们学习知识为什么总是忘记呢?【学习金字塔】 05.12
Android开发,为什么Android不直接链接mysql数据库 04.12
Java学习总结(1.2.2) 线程安全之原子操作 03.20