加载网络未知尺寸图片,自动缩放并水平、垂直居中显示

个人随笔代码实现以下功能:1、加载网络未知尺寸的图片,用户可以随意输入显示区的大小,图片会自动适应宽高。2、水平、垂直居中未知尺寸的图片

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>水平并垂直居中未知大小的图片</title>
 6     <style>
 7         #imageBox {
 8             width: 250px;
 9             height: 250px;
10             margin: 30px auto;
11             border: 1px solid green;
12             display: table; /**key point**/
13             text-align: center;
14         }
15
16         .spaceSpan {
17             height: 100%;
18             display: table-cell; /**key point**/
19             vertical-align: middle; /**key point**/
20         }
21
22         #testImage {
23             vertical-align: middle;
24         }
25
26     </style>
27     <script>
28         function zoomImage(imageId, imageBoxWidth, imageBoxHeight) {
29             var image = document.getElementById(imageId);
30             //计算出图片容器的宽高比
31             var imageBoxWidthHeightScale = imageBoxWidth / imageBoxHeight;
32             //计算出实际图片的宽高比
33             var imageWidthHeightScale = image.width / image.height;
34             var widthScale = image.width / imageBoxWidth;
35             var heightScale = image.height / imageBoxHeight;
36             var maxScale = Math.max(widthScale, heightScale);
37             if (maxScale < 1) {  //图片宽高都比盒子小时不对图片操作
38                 return null;
39             } else {            //图片的宽或者高大于盒子大小时
40                 if (imageBoxWidthHeightScale > imageWidthHeightScale) { //盒子相对图片来说更"扁",此时控制图片的高度
41                     image.height *= heightScale > 1 ? 1 / heightScale : heightScale;
42                 } else {    //图片相对盒子来说更"扁",此时控制图片的宽度
43                     image.width *= widthScale > 1 ? 1 / widthScale : widthScale;
44                 }
45             }
46         }
47     </script>
48 </head>
49 <body>
50 <div id="imageBox">
51     <span class="spaceSpan">
52         <image id="testImage"
53                src="http://daily.clzg.cn/res/1/20160311/75231457630062963.jpg"
54                onload="zoomImage(‘testImage‘,200,200)"/>
55     </span>
56 </div>
57 </body>
58 </html>

实际效果如下图:


时间: 2024-08-05 07:20:00

加载网络未知尺寸图片,自动缩放并水平、垂直居中显示的相关文章

android客户端加载网络大图片如何避免内存溢出

在Android开发中加载sdcard上的大图片到内存时容易导致OOM异常,常见的解决办法是基于BitmapFactory.Options类提供的方法定义指定的解码方式,设置inJustDecodeBounds属性为true,避免分配内存,返回一个null的Bitmap对象(包含outWidth,outHeightandoutMimeType),然后读取图片的尺寸和类型.再根据屏幕的高和宽对图片进行缩放,最后将缩放的图片加载到内存,主要代码如下: 1 Options opts = new Opt

(android开源库android-gif-drawable)第二篇 加载网络gif图片

大家好,  今天给大家带来如何使用 android开源库android-gif-drawable来 加载网络gif图片 同样的DEMO下载地址在 最后 请大家去下载 . 如果gif图片地址无效 了.      请大家自行到网上去寻找一个 gif图片地址 复制过去就可以了.谢谢大家 不会在 eclipse下使用  (android开源库android-gif-drawable)     请看我的这篇博客   (android开源库android-gif-drawable)第一篇 eclipse使用

【转】C# winform 加载网页 模拟键盘输入自动接入访问网络

[转]C# winform 加载网页 模拟键盘输入自动接入访问网络 声明: 本文原创,首发于博客园 http://www.cnblogs.com/EasyInvoice/p/6070563.html 转载请注明出处. 背景: 由于所在办公室网络限制,笔者每天都使用网络都要先连接无线网.如下图,输入授权用户信息登录后才能使用WIFI. 丧心病狂的是该网页Cookie 过期时间为24小时,所以每天重复以下动作:打开浏览器 -> 手动输入 工号密码.密码 -> 点击"登录"按钮.

使用MFC CImage类和GDI+ Image加载并绘制PNG图片

一.使用MFC CImage类加载PNG图片        为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 CImage* m_pImgBk; ...... m_pImgBk = new CImage; m_pImgBk->Load( _T("res\\bk.png")); if ( m_pImgBk->IsNull() )

Android加载网络GIF完整解决方案

前言: 加载并显示gif是App常见的一个功能,像加载普通图片一样,大体应该包含以下几项功能: 1.自动下载GIF到本地文件作为缓存,第二次加载同一个url的图片不需要下载第二遍 2.由于GIF往往较大,要显示圆形的进度条提示下载进度 3.在GIF完全下载完之前,先显示GIF的第一帧图像进行占位,完全下载完毕之后自动播放动画. 4.两个不同的页面加载同一张GIF,两个页面的加载进度应该一致 5.支持ViewPager同时加载多个GIF动图 效果演示:            实现思路: 1.关于下

浅谈Android中的异步加载之ListView中图片的缓存及优化三

     隔了很久没写博客,现在必须快速脉动回来.今天我还是接着上一个多线程中的异步加载系列中的最后一个使用异步加载实现ListView中的图片缓存及其优化.具体来说这次是一个综合Demo.但是个人觉得里面还算有点价值的就是里面的图片的缓存的实现.因为老实说它确实能在实际的项目中得到很好的应用.主要学习来源于慕课网中的异步加载学习,来自徐宜生大神的灵感.本次也就是对大神所讲知识的一个总结及一些个人的感受吧. 这次是一个综合的Demo,主要里面涉及到的知识主要有:网络编程.异步加载.JSON解析.

安卓简历技术点——熟练掌握ListView的优化及异步任务加载网络数据。

对于面试,可能listview这个问题,永远高频出现,毕竟开发中,他出现的也是高频的. 我先说下基本优化 listview优化 1.复用减少内存消耗---->convertView进行判断是否为空,不为空的时候,直接重新使用.为空的时候给他一个布局 2.减少查找id的次数----->定义一个ViewHolder 存储控件,然后与convertView绑定起来 对于以上的两条如果说你能在项目中用到并且将Viewholder抽取到一个单独的类中进行复用,面试官对你看法会有所提高的. 继续吧 如果对

分针网—每日分享: 根据屏幕大小,加载不同大小的图片

引言 今天要介绍的东西,很简单,但是对于前端响应式的时候是个很重要的知识: 我们在用bootstrap这类前端框架时, 虽然页面局部通过media query实现了,页面始终无滚动条,响应式页面. 但是,bootstrap里面的img-responsive类只是通过设置图片100%, 并没有真正的实现在手机上和电脑端加载不同大小的图片. 代码其实很简单 <!DOCTYPE html> <html lang="en"> <head> <meta 

imagepool前端图片加载管理器(JavaScript图片连接池)

前言 imagepool是一款管理图片加载的JS工具,通过imagepool可以控制图片并发加载个数. 对于图片加载,最原始的方式就是直接写个img标签,比如:<img src="图片url" />. 经过不断优化,出现了图片延迟加载方案,这回图片的URL不直接写在src属性中,而是写在某个属性中,比如:<img src="" data-src="图片url" />.这样浏览器就不会自动加载图片,等到一个恰当的时机需要加载