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

精贴 置顶
2777 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
随机综合
Java学习总结(1.1.3) 线程中止 03.17
中间件1.3.3-RabbitMQ持久化机制、内存/磁盘控制 04.29
Java学习总结(2.2.2) 责任链模式 04.20
鸿蒙内核 04.29
Java学习总结(2.1.3) NIO非阻塞网络编程三大核心理念 04.17
Mysql安装教程 - 绿色版 06.18
情绪巨婴是什么 12.18
Typora开发版⽆法使⽤解决⽅法 05.04