canvas 使绘制的图片在div 居中显示 ,解决绘图模糊问题
2018-01-19 18:29
2346 查看
一:绘图在div 居中显示:
首先把canvas当成未知的图片来处理,未知图片的居中显示如下:
二:绘图模糊
canvas作为画布,不能用css和style的方式设置宽高,他有自己特定的属性,width和height。不管当前的图片有多大,画布的宽高设置为图片的二倍,ctx.drawImge()绘制图片后,在用canvas的css再次定义,使其的宽高和图片大小一直,就可以解决canvas绘制图片模糊的问题。
实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.test-pic{
width:700px;
height: 400px;
margin: 20px auto;
border: 1px solid #000;
}
.test-pic div{
width:50%;
height: 100%;
float: left;
background: #f3f3f3;
position: relative;
}
.test-pic img {
width: 80%;
height: auto;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
.test-pic canvas {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="test-pic">
<div id="test-pic-top" style="opacity: 1;">
<img src="http://img1.3lian.com/img013/v2/38/d/41.jpg">
</div>
<div>
<canvas id="myCanvas">
</canvas>
</div>
</div>
<script src="jquery-3.1.1.js"></script>
<script>
var oImg = document.getElementsByTagName('img')[0];
var cImg = new Image();
cImg.onload = function() {
var c = document.getElementById('myCanvas');
var ctx = c.getContext('2d');
// 设置画布的大小为图片大小的二倍
c.width = $('img').width()*2;
c.he
4000
ight = $('img').height()*2;
// 绘制图片
ctx.drawImage(oImg,0,0,c.width,c.height);
// 用css控制画布大小
c.style.width = $('img').width() + 'px';
c.style.height = $('img').height() + 'px';
}
cImg.src = oImg.src;
</script>
</body>
</html>
首先把canvas当成未知的图片来处理,未知图片的居中显示如下:
二:绘图模糊
canvas作为画布,不能用css和style的方式设置宽高,他有自己特定的属性,width和height。不管当前的图片有多大,画布的宽高设置为图片的二倍,ctx.drawImge()绘制图片后,在用canvas的css再次定义,使其的宽高和图片大小一直,就可以解决canvas绘制图片模糊的问题。
实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.test-pic{
width:700px;
height: 400px;
margin: 20px auto;
border: 1px solid #000;
}
.test-pic div{
width:50%;
height: 100%;
float: left;
background: #f3f3f3;
position: relative;
}
.test-pic img {
width: 80%;
height: auto;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
.test-pic canvas {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="test-pic">
<div id="test-pic-top" style="opacity: 1;">
<img src="http://img1.3lian.com/img013/v2/38/d/41.jpg">
</div>
<div>
<canvas id="myCanvas">
</canvas>
</div>
</div>
<script src="jquery-3.1.1.js"></script>
<script>
var oImg = document.getElementsByTagName('img')[0];
var cImg = new Image();
cImg.onload = function() {
var c = document.getElementById('myCanvas');
var ctx = c.getContext('2d');
// 设置画布的大小为图片大小的二倍
c.width = $('img').width()*2;
c.he
4000
ight = $('img').height()*2;
// 绘制图片
ctx.drawImage(oImg,0,0,c.width,c.height);
// 用css控制画布大小
c.style.width = $('img').width() + 'px';
c.style.height = $('img').height() + 'px';
}
cImg.src = oImg.src;
</script>
</body>
</html>
相关文章推荐
- 解决html5 canvas 绘制字体、图片与图形模糊问题
- openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Canvas-drawImage 绘制图片模糊问题
- cocos2dx js 关于canvas绘图模糊问题及解决办法
- div+css解决图片垂直居中问题
- 解决Html5用canvas绘制不出来图片的问题
- cocos2dx js 关于canvas绘图模糊问题及解决办法
- 谷歌浏览器canvas画图片不显示问题解决
- cocos2d-x如何解决图片显示模糊问题
- vue中使用html2canvas及解决html2canvas截屏图片模糊问题
- cocos2d-x如何解决图片显示模糊问题
- html5 canvas绘制图片模糊的问题
- Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
- div嵌套时背景图片不显示问题解决方法总结
- canvas 绘图出现模糊问题的解决方法
- DIV+CSS中图片和文字混排居中问题解决方案
- 解决matplotlib绘制图片时中文无法正常显示的问题
- DIV+CSS中图片和文字居中问题解决方案
- cocos2d-x如何解决图片显示模糊问题