博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手机不定大小头像处理
阅读量:5757 次
发布时间:2019-06-18

本文共 2537 字,大约阅读时间需要 8 分钟。

要求:

图像尺寸可能有以下几种可能:宽>高,宽

1.CSS background实现

HTML

1. CSS3 background实现

CSS

/* 假设你已经拥有DEMO里需要的图片 */.m-box {
width: 100px; height: 100px; border-radius: 50%; overflow: hidden; margin-bottom: 20px;}.box-background-w {
background-image: url(img/400x200.jpg); }.box-background-h {
background-image: url(img/200x400.jpg); }.box-background-wh {
background-image: url(img/400x400.jpg); }.box-background {
-webkit-background-size: cover; background-position: center center; background-repeat: no-repeat;}

 

如图: 

 

2.JS实现并裁切

HTML

2. JS实现

CSS

.m-box {
width: 100px; height: 100px; border-radius: 50%; overflow: hidden; margin-bottom: 20px;}#after {
padding: 10px; }#after img {
margin: 10px; }

JS

// usevar aImg = document.getElementsByClassName('J_CropImage');for(var len = aImg.length - 1; len >= 0; len--){    loadImg(aImg[len], aImg[len].getAttribute('src'));}function getById(id){    return document.getElementById(id);}// 加载图片function loadImg(obj, src){    var img = new Image();    img.src = src;    img.onload = function(){        setImg(obj, img);    };}// 设置图片位置function setImg(o, img){    var width = img.width, height = img.height,            sx = 0, sy = 0, sw = 0, sh = 0, x = 0, y = 0, w = 100, h = 100;    if(width > height){        // 设置高度100%,改变宽度        o.style.cssText = 'height: 100%; margin-left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%);';        sx = (width - height)/2;        sh = sw = height;    }    else if(height > width){        // 设置宽度100%,改变高度        o.style.cssText = 'width: 100%; margin-top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%);';        sy = (height - width)/2;        sh = sw = width;    }    else{        // 相等,设置宽高100%        o.style.cssText = 'width: 100%; height: 100%;';        sh = sw = height;    }    cropImage(img.src, sx, sy, sw, sh, x, y, w, h);}// 图片裁切function cropImage(src, sx, sy, sw, sh, x, y, w, h){    var oCanvas = getById('canvas');    if(!oCanvas.getContext) return;    var ctx = oCanvas.getContext('2d');    var oImg = new Image();    oImg.src = src;    oImg.onload = function(){        ctx.drawImage(oImg,                sx, sy, sw, sh,                x, y, w, h        );        var resImg = document.createElement('img');        resImg.src = oCanvas.toDataURL('+image/png+', 0.8);        getById('after').appendChild(resImg);    };}

如图:

 

转载于:https://www.cnblogs.com/jununx/p/4473997.html

你可能感兴趣的文章
通过XAML Islands使Windows桌面应用程序现代化
查看>>
社区OpenJDK代码构建平台投入使用
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
Netflix 混沌工程手册 Part 3:实践方法
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
MongoDB主动撤回SSPL的开源许可申请
查看>>
过早扩张、未经检验的技术,创业公司最易跳入哪些致命陷阱?
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
使用Prometheus监控Cloudflare的全球网络
查看>>
Javascript 深入浅出原型
查看>>
VS 2019要来了,是时候了解一下C# 8.0新功能
查看>>
我为何从开发转测试,并坚持了16年?
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Web Storage--HTML5本地存储
查看>>
数据库自动化:DBA和DevOps的双赢
查看>>
Ruby 2.5.0概览
查看>>
Docker4Dev #7 新瓶装老酒 – 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>