Phonegap相机在画布上的绘制失真
Phonegap camera draw on canvas distorted
我正在使用Phonegap相机插件在画布上绘制捕获的图像。
<canvas id="canvas"></canvas>
以及JS:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var x = 0;
var y = 0;
var width = window.innerWidth;
var height = window.innerHeight;
var imageObj = new Image();
imageObj.onload = function() {
context.drawImage(imageObj, x, y, width, height);
};
imageObj.src = imageURI;
投影的图像看起来失真(拉伸,宽度大于实际值)。
如何显示图像ok,如css宽度:100%;高度:自动?
如果您的图像与屏幕的比例不相同,那么它将被拉伸,因为您告诉它拉伸到宽度和高度:context.drawImage(imageObj, x, y, width, height);
。您可以尝试删除宽度、高度参数。
您可能需要计算缩放比例:
var ratio;
if (imageObj.width>width) {
ratio = width/imageObj.width;
}
else if (imageObj.height > height) {
ratio = height/imageObj.height;
}
else {
ratio = 1;
}
context.drawImage(imageObj, x, y, imageObj.width*ratio, imageObj.height*ratio);
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 有没有一个javascript图形绘制库可以进行气球树布局
- 使用相同的数据集绘制各种符号
- 使用onclick绘制SVG路径
- 在谷歌地图上绘制位置数据库
- 用chart.js绘制条形图
- “可绘制地图”设置地图选项“纬度-经度”
- 多维数据集网格未在指定的分区中绘制
- 使用谷歌图表在x轴上绘制日期
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- 如何在React Native中绘制图形
- 画布中绘制的矩形区域的弹出工具提示
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 画布:逐像素绘制图像并请求动画帧计时
- D3从嵌套的JSON中绘制第二个圆环图
- 如何用d3.js绘制折线图
- 在WebGL中绘制多个二维图像
- JSXGraph:如何绘制带有箭头和无点标记的矢量
- 用图像而不是颜色填充对象(将图像绘制到画布上)
- Phonegap相机在画布上的绘制失真